home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 6 / Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso / 033a / pb_116.arj / PROBOARD.DOC < prev    next >
Text File  |  1991-09-30  |  223KB  |  6,794 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.          ██████                 ██████                            ███
  22.           ██  ██                 ██  ██                            ██
  23.           ██  ██ ██ ███   ████   ██  ██  ████   ████   ██ ███      ██
  24.           █████   ███ ██ ██  ██  █████  ██  ██     ██   ███ ██  █████
  25.           ██      ██  ██ ██  ██  ██  ██ ██  ██  █████   ██  ██ ██  ██
  26.           ██      ██     ██  ██  ██  ██ ██  ██ ██  ██   ██     ██  ██
  27.          ████    ████     ████  ██████   ████   ██████ ████     ██████
  28.  
  29.  
  30.                                   Version 1.16
  31.  
  32.                                    30-Sep-1991
  33.  
  34.  
  35.          Copyright (c) 1990,1991 Philippe Leybaert - All rights reserved
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.          ──────────────────────────────────────────────────────────────────
  77.  
  78.          The following names/products mentioned in this documentation are
  79.          copyrighted material, trademarks or registered trademarks:
  80.  
  81.          Bimodem                    Erik Labs
  82.          DESQview                   Quarterdeck Office Systems
  83.          DoorWay                    Marshall Dudley
  84.          FidoNet                    Tom Jennings
  85.          IBM PC/XT/AT               International Business Machines, Inc
  86.          MBUTIL                     Gerard van der Land
  87.          MS-DOS , Microsoft C       Microsoft, Inc
  88.          Multi-Edit                 American Cybernetics, Inc
  89.          Opus                       Wynn Wagner III
  90.          QuickBBS & QEcho           The QuickBBS Group, Inc
  91.          QuickEd                    Tirosh Bros.
  92.          RemoteAccess (RA)          Continental Software, Inc
  93.          TLIB                       Burton Systems Software
  94.          TosScan & FrontDoor        Joaquim H. Homrighausen
  95.          Turbo Assembler/Debugger   Borland International, Inc
  96.          Borland C++, Turbo C++     Borland International, Inc
  97.          X00                        Ray Gwinn
  98.          ZmailQ                     Claude N. Warren
  99.          Zortech C++, BLink         Zortech, Inc
  100.  
  101.          ──────────────────────────────────────────────────────────────────
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.                                       - 1 -
  129.  
  130.  
  131.  
  132.                               ┌──────────┐
  133.                               │ CONTENTS │
  134.                               └──────────┘
  135.  
  136.  
  137.                 I.    Introduction .................................   4
  138.                         - Description ..............................   4
  139.                         - Support ..................................   5
  140.                         - Technical Info ...........................   6
  141.                         - Credits ..................................   7
  142.  
  143.                 II.   Registration .................................   8
  144.  
  145.                 III.  Installation .................................  11
  146.  
  147.                 IV.   Configuration ................................  14
  148.                         - System parameters ........................  14
  149.                         - Protocols ................................  18
  150.                         - Message areas ............................  22
  151.                         - File areas ...............................  23
  152.                         - Time/download limits .....................  25
  153.                         - Modem parameters .........................  25
  154.                         - Events ...................................  28
  155.                         - Personal Files ...........................  29
  156.  
  157.                 V.    Security .....................................  30
  158.                         - Levels & Flags ...........................  30
  159.                         - Trashcan .................................  30
  160.  
  161.                 VI.   Menus ........................................  31
  162.                         - Setting up menus .........................  31
  163.                         - Menu Security ............................  32
  164.                         - Creating menus ...........................  33
  165.                         - Hints ....................................  35
  166.                         - Menu function overview ...................  35
  167.  
  168.                 VII.  Users ........................................  62
  169.                         - User editor ..............................  62
  170.                         - Loglevels ................................  64
  171.  
  172.  
  173.                 VIII. Echomail & Netmail ...........................  66
  174.                         - Echomail .................................  66
  175.                         - Netmail ..................................  66
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.                                       - 2 -
  185.  
  186.  
  187.  
  188.                 IX.   PBUtil .......................................  68
  189.                         - Message packer ...........................  69
  190.                         - Message indexer ..........................  69
  191.                         - Message killer ...........................  69
  192.                         - Messagebase repair .......................  69
  193.                         - Message linker ...........................  70
  194.                         - Userfile packer ..........................  70
  195.                         - Userfile indexer .........................  70
  196.                         - Userfile sorter ..........................  70
  197.                         - User killer ..............................  71
  198.                         - File counters ............................  72
  199.                         - Nodelist compiler ........................  72
  200.                         - LASTREAD converter .......................  74
  201.  
  202.                 X.    Reference ....................................  75
  203.                         - Multi-user operation .....................  75
  204.                         - Sysop keys ...............................  76
  205.                         - Command line options & errorlevels .......  78
  206.                         - Hard-coded ANS/ASC files .................  80
  207.                         - ANS/ASC control codes ....................  82
  208.                         - Music Files ..............................  85
  209.                         - Text Macros ..............................  85
  210.                         - Example batch files ......................  88
  211.  
  212.                 XI.   Software Development Kit......................  91
  213.                         - Requirements..............................  91
  214.                         - Creating ProBoard Executables.............  92
  215.                         - Compiling and linking.....................  93
  216.                         - Restrictions..............................  93
  217.                         - Library functions supported...............  95
  218.                         - ProBoard interface functions..............  97
  219.                         - Global ProBoard variables................. 113
  220.                         - Special-purpose PEX-files................. 116
  221.  
  222.                 XII.  RemoteAccess to ProBoard conversion........... 118
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.                                       - 3 -
  241.  
  242.  
  243.  
  244.                              ┌─────────────────┐
  245.                              │ I. INTRODUCTION │
  246.                              └─────────────────┘
  247.  
  248.  
  249.          Description
  250.          ──────────────────────────────────────────────────────────────────
  251.  
  252.          ProBoard is a program to run a public or private BBS.  A BBS
  253.          is a Bulletin Board, where files, messages and other useful
  254.          things may be exchanged between users. The operator of a BBS
  255.          is called System Operator, in short SysOp.  He/she is
  256.          responsible for the correct functioning of the BBS. Therefore,
  257.          this manual is primarily intended for sysops, or future
  258.          sysops.
  259.  
  260.          ProBoard has everything a BBS program must have to efficiently run
  261.          a BBS. It's even possible to use ProBoard within a mail network.
  262.          Furthermore, more than one user at a time can use a BBS running
  263.          ProBoard, by making use of a network or multitasker.
  264.  
  265.          The greatest asset of ProBoard is that it has most of the features
  266.          (and MORE!) of QuickBBS and Remote Access, yet needs a small
  267.          amount of memory and disk storage space to run (<256K). You could
  268.          run three copies of ProBoard on just one P under Desqview. On
  269.          a 80386 computer with 2MB of RAM, you could run 4 nodes, and
  270.          still have a 600K DOS window at your disposal! When running an
  271.          external program, ProBoard can swap itself to disk/EMS, and stay
  272.          resident in only 2000 bytes !!!  The most important feature is
  273.          undoubtedly the ability to extend ProBoard by writing your own
  274.          extensions in C or C++.
  275.  
  276.          All messages are stored in a single, QuickBBS-compatible message-
  277.          base. So all QuickBBS message-base utilities will work with
  278.          ProBoard. The only QuickBBS file not supported by ProBoard is the
  279.          LASTREAD.BBS file, but a utility to extract and store the
  280.          LASTREAD.BBS file from/in the userfile is included.  The
  281.          EXITINFO.BBS is also supported.
  282.  
  283.  
  284.  
  285.  
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.                                       - 4 -
  297.  
  298.  
  299.  
  300.          This is a list of the most important features not found in other
  301.          BBS software like Remote Access:
  302.  
  303.          - A software development kit! Write your own extensions to
  304.            ProBoard using C or C++. You can write "internal doors", and a
  305.            lot more!! THIS IS UNIQUE!!
  306.          - Swaps itself to disk or EMS , leaving only 2 (two) Kb resident!
  307.          - Extremely flexible protection against excessive downloaders.
  308.          - REAL-TIME multi-line chat built in. No stupid line-per-line chat.
  309.          - Advanced CD-ROM support. The CD-ROM drive is not accessed
  310.            until a file is actually downloaded.
  311.          - VERY flexible protocol configuration. You can install all
  312.            protocols directly in ProBoard, including Zmodem,Xmodem,Puma,
  313.            Lynx, Bimodem (FULL support!),...
  314.          - Files can be downloaded from all areas at once, a single area
  315.            or from ANY combination of areas.
  316.          - You can set download-limits per file area (# files & # Kb)
  317.          - More control over the control codes in textfiles: left/right
  318.            aligned, fixed field length,...
  319.          - Hotkeys or command stacking or a combination of these two.
  320.          - Sysop macros: you can assign keystrokes to function keys!
  321.          - IBM-specific characters can be filtered out for certain users.
  322.          - European or American date format.
  323.          - Personal files: users can exchange private files!
  324.          - Expiration dates. Let ProBoard lower a user's level at a given
  325.            date.
  326.          - Advanced support for extended text modes (132 columns)
  327.          - Online help for all sysop-keys and macros.
  328.          - Extremely user-friendly configuration/maintenance.
  329.  
  330.  
  331.          Support
  332.          ──────────────────────────────────────────────────────────────────
  333.  
  334.          For problems, bug-reports, etc. please write to:
  335.  
  336.             Rutger Lasuy                     or     Philippe Leybaert
  337.             Krakeelstraat 5                         1079 Ramsdell Drive
  338.             B-9260 Serskamp                         Apple Valley, MN 55124
  339.             BELGIUM                                 USA
  340.  
  341.  
  342.          You can also fax to the following number:  +32-91-444-938
  343.  
  344.          If you like, you can reach me on FidoNet (2:292/1900) or on
  345.          CompuServe (70314,2021).
  346.  
  347.          We can only offer limited support to non-registered users.
  348.  
  349.  
  350.  
  351.  
  352.                                       - 5 -
  353.  
  354.  
  355.  
  356.          You can also call the support BBS for questions, the latest
  357.          version and utilities for ProBoard:
  358.  
  359.               - ProBoard Benelux (Fido 2:292/1900)
  360.                   Sysop: Marc Van Loocke
  361.                   Hours: 24/24
  362.                   Speed: 300-2400 MNP
  363.                   Tel  : +32-91-20.25.31
  364.  
  365.  
  366.          To get the latest version, you can call:
  367.  
  368.               - Computron BBS
  369.                   Sysop: Alain Luckx
  370.                   Hours: 24/24
  371.                   Speed: 300-2400 v42bis MNP/LAP-M
  372.                   Tel  : +32-91-72.58.56 (8 lines)
  373.  
  374.               - Travel Info Net (Fido 1:244/201)
  375.                   Sysop: Peter J. Ptok
  376.                   Hours: 24/24
  377.                   Speed: 300-9600 HST/MNP
  378.                   Tel  : +1-519-428-9287
  379.  
  380.               - Milling A-Round
  381.                   Sysop: Mike Wagner
  382.                   Hours: 24/24
  383.                   Speed: 300-2400
  384.                   Tel  : +1-612-944-5091
  385.  
  386.          It should also be available on CompuServe (IBMBBS forum).
  387.  
  388.  
  389.  
  390.          Technical Info
  391.          ──────────────────────────────────────────────────────────────────
  392.  
  393.          ProBoard is entirely written in C++ and Assembler. No third-party
  394.          libraries are used, so we have TOTAL control over the code!
  395.  
  396.          For the development of ProBoard, we used the following tools:
  397.  
  398.          Compiler......... Zortech C++ v3.0
  399.          Linker........... BLink, part of Zortech C++ v3.0
  400.          Assembler........ Turbo Assembler v2.5
  401.          Debugger......... Zortech Debugger v3.0
  402.          Editor........... Multi-Edit Professional 5.01
  403.          Version Control.. TLIB v4.12f
  404.  
  405.  
  406.  
  407.  
  408.                                       - 6 -
  409.  
  410.  
  411.  
  412.          Credits
  413.          ──────────────────────────────────────────────────────────────────
  414.  
  415.          ProBoard and all the included utilities are written by:
  416.  
  417.              Philippe Leybaert and Rutger Lasuy
  418.  
  419.  
  420.          Documentation:
  421.  
  422.              Original text       : Rutger Lasuy
  423.  
  424.              Final editing       : Philippe Leybaert
  425.  
  426.              English Translation : Luk Vermeulen
  427.  
  428.  
  429.          Beta-testing:
  430.  
  431.              Marc Van Loocke  -  ProBoard Support Benelux
  432.              Alain Luckx      -  Computron BBS
  433.              Eddy Impens      -  F-Three BBS
  434.              Mike Wagner      -  Milling A-Round
  435.  
  436.  
  437.          Sysops who are interested in testing pre-releases (alpha & beta
  438.          versions), please contact me.
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.                                       - 7 -
  465.  
  466.  
  467.  
  468.                              ┌──────────────────┐
  469.                              │ II. REGISTRATION │
  470.                              └──────────────────┘
  471.  
  472.  
  473.          ProBoard is SHAREWARE. This means that you are granted a 30-day
  474.          evaluation period, after which you must register. You will receive
  475.          a disk (3.5" or 5.25") with the latest version of ProBoard and a
  476.          registration file. This file is valid for all future versions of
  477.          ProBoard up to 2.00.
  478.  
  479.          Registration fees for non-commercial use are as follows:
  480.  
  481.                                   Registration        Registration + Manual
  482.                                   ------------        ---------------------
  483.              USA.................    40 US$                   60 US$
  484.              Canada..............    50 CAN$                  75 CAN$
  485.              Belgium.............  1500 BF                  2500 BF
  486.              The Netherlands.....    85 FL                   135 FL
  487.              UK..................    25 BP                    40 BP
  488.              Germany.............    75 DM                   120 DM
  489.              France..............   275 FF                   425 FF
  490.  
  491.  
  492.          When used in a commercial environment, multiply the
  493.          registration-only prices by 5.  Commercial registrations include
  494.          the printed & bound manual and free support by fax.
  495.  
  496.          To register, fill out the registration form on the next page,
  497.          print it, and send it together with your payment (check or
  498.          money order) to the following address:
  499.  
  500.          In the US:
  501.  
  502.              ProBoard USA - Karen Charland
  503.              1079 Ramsdell Drive
  504.              Apple Valley, MN 55124
  505.              USA
  506.  
  507.          [ Make checks payable to Karen Charland ]
  508.  
  509.  
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.                                       - 8 -
  521.  
  522.  
  523.  
  524.          In Canada:
  525.  
  526.              ProBoard Canada - Peter J. Ptok
  527.              R.R 1
  528.              Simcoe, Ontario
  529.              Canada N3Y-4J9
  530.  
  531.          [ Make checks payable to Peter J. Ptok ]
  532.  
  533.              VISA/MC registration:   1-519-428-1170 Voice
  534.                                      1-519-428-9287 Data
  535.  
  536.  
  537.          In Europe:
  538.  
  539.              ProBoard Europe - Rutger Lasuy
  540.              Krakeelstraat 5
  541.              B-9260 Serskamp
  542.              BELGIUM
  543.  
  544.  
  545.  
  546.  
  547.  
  548.  
  549.  
  550.  
  551.  
  552.  
  553.  
  554.  
  555.  
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562.  
  563.  
  564.  
  565.  
  566.  
  567.  
  568.  
  569.  
  570.  
  571.  
  572.  
  573.  
  574.  
  575.  
  576.                                       - 9 -
  577.  
  578.  
  579.  
  580.          ------------------------------------------------------------------
  581.                ProBoard version 1.16     ----     Registration Form
  582.          ------------------------------------------------------------------
  583.  
  584.  
  585.          Your Name    :  _____________________________________________
  586.  
  587.          Company      :  _____________________________________________
  588.  
  589.          Sysop Name   :  _____________________________________________
  590.  
  591.          BBS name     :  _____________________________________________
  592.  
  593.          Diskette-size:  ( ) - 5"1/4        ( ) - 3"1/2    (check one)
  594.  
  595.          Address      :  _____________________________________________
  596.  
  597.                          _____________________________________________
  598.  
  599.                          _____________________________________________
  600.  
  601.  
  602.          Primary BBS phone number : __________________________________
  603.  
  604.          Hours of operation       : __________________________________
  605.  
  606.          Is your system part of FidoNet?   ( ) - Yes          ( ) - No
  607.  
  608.          If so, what is your network address?  _______________________
  609.  
  610.          Type of registration:   ( ) - Personal       ( ) - Commercial
  611.  
  612.          Registration amount enclosed: _______________________________
  613.  
  614.  
  615.  
  616.          What would you like to see (changed) in future versions of
  617.          ProBoard?
  618.  
  619.          _____________________________________________________________
  620.  
  621.          _____________________________________________________________
  622.  
  623.          _____________________________________________________________
  624.  
  625.          _____________________________________________________________
  626.  
  627.  
  628.  
  629.  
  630.  
  631.  
  632.                                       - 10 -
  633.  
  634.  
  635.  
  636.                              ┌───────────────────┐
  637.                              │ III. INSTALLATION │
  638.                              └───────────────────┘
  639.  
  640.  
  641.          If you are already operating a Remote Access BBS system, refer to
  642.          chapters XI and XII on how to convert your system to ProBoard.
  643.  
  644.          The system-requirements for ProBoard are:
  645.  
  646.                - DOS v3.10 or higher
  647.                - 256K of free system memory
  648.                - A FOSSIL driver (eg. X00)
  649.  
  650.          A FOSSIL driver can be obtained from many BBS's (including from
  651.          the ProBoard Support BBS).
  652.  
  653.  
  654.          The following guide-lines are intended for a single-user system.
  655.          Please refer to the appropriate chapter on how to install a
  656.          multi-user system.
  657.  
  658.          ProBoard is distributed in a compressed file (PB_xxx.ZIP). Make
  659.          a subdirectory for ProBoard to be installed in, eg. C:\PB
  660.  
  661.          Unzip PB_xxx.ZIP in C:\PB in order to obtain the following files:
  662.  
  663.             PROBOARD.EXE            ProBoard executable
  664.             PB.EXE                  Standalone control program
  665.             PROCFG.EXE              ProBoard configuration program
  666.             PBUTIL.EXE              Maintenance utility
  667.             PROBOARD.DOC            This file
  668.             P.BAT                   Basic batch file
  669.             EX_MENUS.ZIP            Example menus
  670.             EX_TXT.ZIP              Example ANS/ASC files
  671.             EX_CFG.ZIP              Example configuration files
  672.             CONVERT.EXE             Conversion utility
  673.             SDK.ZIP                 ProBoard Software Development Kit (PEX)
  674.  
  675.  
  676.  
  677.  
  678.  
  679.  
  680.  
  681.  
  682.  
  683.  
  684.  
  685.  
  686.  
  687.  
  688.                                       - 11 -
  689.  
  690.  
  691.  
  692.          Now make a subdirectory for the menus (C:\PB\MENUS). You will
  693.          also need a subdirectory for the text files that ProBoard will
  694.          use (C:\PB\ANSI), a directory for the messagebase (C:\PB\MSG),
  695.          and a directory for PEX-files (C:\PB\PEX).
  696.  
  697.         You should now have these subdirectories:
  698.  
  699.             C:\PB\MENUS
  700.             C:\PB\ANSI
  701.             C:\PB\MSG
  702.             C:\PB\PEX
  703.  
  704.  
  705.          With previous versions of ProBoard (1.0x), you had to set 2
  706.          environment variables (PROBOARD and DSZLOG). This is not
  707.          necessary with this version. ProBoard will look for its data
  708.          files in the directory where PROBOARD.EXE is located. You can,
  709.          however, tell ProBoard to look for the data files in another
  710.          directory by setting the environment variable PROBOARD (eg. SET
  711.          PROBOARD=F:\PB).  The environment variable DSZLOG used by most
  712.          protocols is not needed. ProBoard will set this variable prior to
  713.          starting the protocol.
  714.  
  715.          ProBoard is now ready to be configured by ProCFG. This is
  716.          discussed in the next chapter.
  717.  
  718.          Once ProBoard is installed, you may start it in a batch file.
  719.          ProBoard should ALWAYS be run in a batch file, because the program
  720.          returns to DOS when a user logs off.
  721.  
  722.          This is the basic batch file for stand-alone operation (without a
  723.          mailer). It is called P.BAT and is included in PB_xxx.ZIP
  724.  
  725.            :again
  726.            PB
  727.            if errorlevel 99 goto out
  728.            if errorlevel 1 goto fatal
  729.            goto again
  730.            :fatal
  731.            echo A fatal error occured.
  732.            goto x
  733.            :out
  734.            echo Normal exit.
  735.            :x
  736.  
  737.          Note that errorlevels 2-4 generate a fatal error. These error-
  738.          levels are used for mail networking, and ProBoard should not
  739.          return one of these errorlevels in a standalone environment.
  740.  
  741.  
  742.  
  743.  
  744.                                       - 12 -
  745.  
  746.  
  747.  
  748.          PROBOARD.EXE's command line options will be discussed later in
  749.          this manual. PB.EXE takes care of initializing the modem and
  750.          calling PROBOARD.EXE with the right parameters when a call comes
  751.          in.
  752.  
  753.  
  754.  
  755.  
  756.  
  757.  
  758.  
  759.  
  760.  
  761.  
  762.  
  763.  
  764.  
  765.  
  766.  
  767.  
  768.  
  769.  
  770.  
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786.  
  787.  
  788.  
  789.  
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796.  
  797.  
  798.  
  799.  
  800.                                       - 13 -
  801.  
  802.  
  803.  
  804.                              ┌───────────────────┐
  805.                              │ IV. CONFIGURATION │
  806.                              └───────────────────┘
  807.  
  808.  
  809.          ProBoard is completely configured by PROCFG.EXE. This program can
  810.          be executed from any directory. In most of the menus, just press
  811.          <Ins> to add an item, press <Del> to remove an item, and press
  812.          <Enter> to select an item.
  813.  
  814.  
  815.          System parameters
  816.          ──────────────────────────────────────────────────────────────────
  817.  
  818.          This is the first option to choose when running PROCFG.EXE. A
  819.          second menu will be displayed with the following items:
  820.  
  821.             - Paths
  822.             - User parameters
  823.             - Security
  824.             - Yelling
  825.             - General
  826.             - File Transfer
  827.             - Display options
  828.  
  829.          A description of these fields follows.
  830.  
  831.  
  832.          Paths (System Parameters)
  833.          ──────────────────────────────────────────────────────────────────
  834.  
  835.          Textfiles path............... Directory where ProBoard's textfiles
  836.                                        are stored (drive included!).
  837.  
  838.          Menu path.................... Directory where ProBoard's menus are
  839.                                        stored (drive included!).
  840.  
  841.          Message path................. Directory where the message base
  842.                                        will be stored (drive included!).
  843.  
  844.          Upload path.................. Directory where the users' uploads
  845.                                        will be stored (drive included!).
  846.  
  847.          Private Upload path.......... Directory where personal files
  848.                                        are stored. (for file exchange
  849.                                        between users).
  850.  
  851.          Nodelist Directory........... Directory where the nodelist is
  852.                                        located. For use by the nodelist
  853.                                        compiler.
  854.  
  855.  
  856.                                       - 14 -
  857.  
  858.  
  859.  
  860.          PEX Directory................ Directory where the PEX files should
  861.                                        be stored.
  862.  
  863.          Editorname................... The external editor's filename and
  864.                                        path (eg. C:\PB\QUICKED.EXE). You
  865.                                        can also use shell options here
  866.                                        (refer to menu type 7 for more
  867.                                        info). Example: *SQUICKED.EXE
  868.  
  869.  
  870.  
  871.          User parameters (System Parameters)
  872.          ──────────────────────────────────────────────────────────────────
  873.  
  874.          New user level............... The level a user will have upon his
  875.                                        or her first login.
  876.  
  877.          New user flags............... The flags a user will have upon his
  878.                                        or her first login.
  879.  
  880.          New user loglevel............ The loglevel a user will have upon
  881.                                        his or her first login (more info
  882.                                        about this later).
  883.  
  884.  
  885.  
  886.          Security (System Parameters)
  887.          ──────────────────────────────────────────────────────────────────
  888.  
  889.          Allow quick login............ If this is enabled, the sysop can
  890.                                        login as sysop by pressing [Enter]
  891.                                        at the login prompt without
  892.                                        entering a password. If you don't
  893.                                        like this, just turn it off.
  894.  
  895.          Write password messages...... If a user fails to log in because
  896.                                        he/she exceeded the maximum number
  897.                                        of password retries, ProBoard can
  898.                                        write a security message to that
  899.                                        person and to the sysop, telling
  900.                                        him/her what happened. This can be
  901.                                        turned on or off with this option.
  902.  
  903.          Max. password tries.......... Maximum number of tries when a
  904.                                        user enters an incorrect password.
  905.  
  906.          Min. password length......... The minimum length of a password.
  907.  
  908.          Level for crashmail.......... Level needed to send crashmail.
  909.  
  910.  
  911.  
  912.                                       - 15 -
  913.  
  914.  
  915.  
  916.          Flags for crashmail.......... Flags needed to send crashmail.
  917.  
  918.          Level for fileattach......... Level needed to do a file attach
  919.                                        for Netmail.
  920.  
  921.          Flags for fileattach......... Flags needed to do a file attach
  922.                                        for Netmail.
  923.  
  924.  
  925.  
  926.  
  927.          Yelling (System Parameters)
  928.          ──────────────────────────────────────────────────────────────────
  929.  
  930.          Max. sysop pages............. Number of times a user can page the
  931.                                        sysop during one session.
  932.  
  933.          PageBell length.............. Number of seconds the sysop paging
  934.                                        bell will ring.
  935.  
  936.          Page start time.............. Users can only yell during these
  937.          Page end time                 hours (in 24h format).
  938.  
  939.  
  940.  
  941.  
  942.          General (System Parameters)
  943.          ──────────────────────────────────────────────────────────────────
  944.  
  945.          ShellMessage................. Textline to be displayed to the user
  946.                                        when an external program is run.
  947.  
  948.          Sysopname.................... Sysop's full name.
  949.  
  950.          Inactivity limit............. Number of seconds a user is allowed
  951.                                        to 'do nothing'. If the user hasn't
  952.                                        typed anything when this limit is
  953.                                        exceeded, he will be logged off.
  954.  
  955.          Quote string................. This string is used to when ProBoard
  956.                                        quotes a message for a reply.
  957.                                        A '@' character is replaced by the
  958.                                        initials of the user who wrote the
  959.                                        message quoted from.
  960.  
  961.          Mailcheck at login........... Determines whether ProBoard should
  962.                                        check for new mail and files upon
  963.                                        login.
  964.  
  965.  
  966.  
  967.  
  968.                                       - 16 -
  969.  
  970.  
  971.  
  972.          Number of nodes.............. Maximum number of users allowed to
  973.                                        log in at the same time (max. 255).
  974.                                        (Explained later).
  975.  
  976.          Allow ANSI................... Determines whether ANSI codes are
  977.                                        permitted.
  978.  
  979.          Ask for phone number......... Determines whether ProBoard should
  980.                                        ask for a user's phone number upon
  981.                                        his/her first login.
  982.  
  983.          Allow one-word names......... Determines whether a user's name can
  984.                                        be a single word.
  985.  
  986.          Allow message uploads........ Determines whether messages can be
  987.                                        uploaded. (not implemented yet)
  988.  
  989.          European date format......... If this is enabled, all dates will
  990.                                        be shown in European format
  991.                                        (DD/MM/YY).
  992.  
  993.          Log local calls.............. Determines whether local logins
  994.                                        should be logged in the logfile.
  995.  
  996.          Use swapping................. Determines the default shelling mode.
  997.                                        If this option is set to ON, ProBoard
  998.                                        will be swapped to disk/EMS, leaving
  999.                                        only 2000 bytes resident!
  1000.  
  1001.          "Fast" Mode.................. When this option is enabled,
  1002.                                        ProBoard will use about 10Kb more
  1003.                                        memory (depending on the number
  1004.                                        of file-areas), but the system
  1005.                                        will run faster.
  1006.  
  1007.          Kill netmail when sent....... Controls whether netmail will be
  1008.                                        killed after a message has been
  1009.                                        exported from the messagebase.
  1010.  
  1011.          Hide sysop activity.......... If enabled, all information about
  1012.                                        the sysop will be hidden for the
  1013.                                        users. This means that your name
  1014.                                        will not appear in the userlist and
  1015.                                        in the list of online users.
  1016.  
  1017.          Origin line.................. Default origin line, used for
  1018.                                        Echomail (more about this later).
  1019.  
  1020.  
  1021.  
  1022.  
  1023.  
  1024.                                       - 17 -
  1025.  
  1026.  
  1027.  
  1028.          File Transfers (System Parameters)
  1029.          ──────────────────────────────────────────────────────────────────
  1030.  
  1031.          Minimum upload space......... Space needed on the upload drive for
  1032.                                        uploads to be allowed.
  1033.  
  1034.          Download start time.......... Users can only download between
  1035.          Download end time             these hours. (except when a flag
  1036.                                        is set in the user's record)
  1037.  
  1038.  
  1039.  
  1040.          Protocols
  1041.          ──────────────────────────────────────────────────────────────────
  1042.  
  1043.          The second (POWERFUL) option in PROCFG.EXE is 'Protocols'. You may
  1044.          want to skip this option when doing a first-time installation of
  1045.          ProBoard, as many protocols are already pre-installed in the
  1046.          file PROTOCOL.PRO.
  1047.  
  1048.          Downloading and uploading files has always been one of the most
  1049.          important activities of BBS's. Most BBS programs have file
  1050.          transfer protocols pre-installed and do not allow additional
  1051.          protocols to be configured. ProBoard's philosophy is entirely
  1052.          different: no protocols are actually embedded in the code, all
  1053.          protocols are external and are being called by ProBoard. These
  1054.          protocols are NOT included with ProBoard. They have to be obtained
  1055.          from other sources (available on most BBS systems). As of yet, we
  1056.          don't know of any external protocol incompatible with ProBoard,
  1057.          Bimodem included! If you happen to find an incompatible external
  1058.          file transfer protocol, please let us know!
  1059.  
  1060.          Upon selection of the 'Protocols' option, a submenu is displayed
  1061.          containing the protocols already present. Add a protocol by
  1062.          pressing <Ins>, remove a protocol by pressing <Del>.
  1063.  
  1064.  
  1065.          A protocol is entirely defined by the following parameters:
  1066.  
  1067.  
  1068.          Name ........................ Protocol's name, to be displayed in
  1069.                                        the down/upload menu. This can
  1070.                                        include a short description if you
  1071.                                        like.
  1072.  
  1073.          Hotkey ...................... Key to be pressed by the user to
  1074.                                        activate the protocol.
  1075.  
  1076.  
  1077.  
  1078.  
  1079.  
  1080.                                       - 18 -
  1081.  
  1082.  
  1083.  
  1084.          Batch ....................... Determines whether the protocol can
  1085.                                        handle batch-mode (whether it can
  1086.                                        handle multiple files). Xmodem for
  1087.                                        example can handle only one file at a
  1088.                                        time, while Zmodem can handle
  1089.                                        multiple files.
  1090.  
  1091.          Enabled ..................... ProBoard comes with some pre-
  1092.                                        installed protocols for which you
  1093.                                        may not have the necessary files.
  1094.                                        It would be useless to have these
  1095.                                        protocols displayed in the menu. You
  1096.                                        can prevent this by setting Enable
  1097.                                        to 'No', without having to loose the
  1098.                                        pre-installed configuration for this
  1099.                                        protocol.
  1100.  
  1101.          Both-Way .................... Determines whether the protocol is a
  1102.                                        full-duplex protocol, ie. whether it
  1103.                                        can send and receive files at the
  1104.                                        same time. (eg. Bimodem)
  1105.  
  1106.          Bimodem ..................... The Bimodem protocol uses an odd
  1107.                                        format for its control file. Setting
  1108.                                        Bimodem to 'Yes' causes the control
  1109.                                        file to be written to disk in
  1110.                                        Bimodem-format.
  1111.  
  1112.          Log-File .................... Name of the log file created by the
  1113.                                        protocol. After the file transfer,
  1114.                                        the information needed to update the
  1115.                                        user-records will be obtained from
  1116.                                        this file by ProBoard. Most
  1117.                                        protocols write a file specified
  1118.                                        in the environment variable DSZLOG.
  1119.                                        ProBoard will set this variable to
  1120.                                        the right filename for you. ProBoard
  1121.                                        checks for the logfile in the
  1122.                                        directory where it was started from,
  1123.                                        so if some external protocol writes
  1124.                                        a different logfile than the one
  1125.                                        specified in the DSZLOG-variable,
  1126.                                        make sure it writes the file in the
  1127.                                        startup-directory!
  1128.  
  1129.  
  1130.  
  1131.  
  1132.  
  1133.  
  1134.  
  1135.  
  1136.                                       - 19 -
  1137.  
  1138.  
  1139.  
  1140.          Ctl-File .................... Protocols that can handle batch-mode
  1141.                                        usually allow parameters to be
  1142.                                        passed not only on the command line,
  1143.                                        but also (should the command line
  1144.                                        grow too long) by means of a control
  1145.                                        file. ProBoard must know of this
  1146.                                        file, to be able to pass the file-
  1147.                                        names to the protocol.
  1148.  
  1149.          DL Command .................. Command needed to start the protocol
  1150.                                        in download-mode. You may want to
  1151.                                        use the shell options of menu
  1152.                                        function 7 here.
  1153.                                        If the first character of this
  1154.                                        command is a '@', then the named
  1155.                                        pex-file will be run. Note that no
  1156.                                        shell-parameters (*x) are supported
  1157.                                        when calling a pex-file. You can use
  1158.                                        string macros though.
  1159.  
  1160.                                        IMPORTANT: The command should be in-
  1161.                                                   dependent of the path it
  1162.                                                   is called from.
  1163.  
  1164.                                        Batch-mode protocols also require a
  1165.                                        control file to be specified. Should
  1166.                                        you, anywhere in this field, fill in
  1167.                                        a '#', then this character will at
  1168.                                        run-time be replaced by the filename
  1169.                                        of the file to be sent (only for
  1170.                                        non-batch protocols).
  1171.  
  1172.          UL Command .................. Command needed to start the protocol
  1173.                                        in upload-mode. Here also, the
  1174.                                        command should be independent of the
  1175.                                        directory it is called from and a
  1176.                                        '#' will be replaced by the filename
  1177.                                        of the file to be received (for
  1178.                                        non-batch protocols), or by the
  1179.                                        directory where files should be
  1180.                                        received into (for batch-protocols).
  1181.                                        A '@' as the first character will
  1182.                                        execute a pex-file (see DL Command).
  1183.  
  1184.  
  1185.  
  1186.  
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192.                                       - 20 -
  1193.  
  1194.  
  1195.  
  1196.          DL String ................... Determines what should be written in
  1197.                                        the control file when downloading.
  1198.                                        A '#' character is replaced by the
  1199.                                        path and filename of the file to
  1200.                                        be sent to the user. Most often, a
  1201.                                        single '#' is the only character in
  1202.                                        this field. This works for most of
  1203.                                        the protocols.
  1204.  
  1205.                                        Example:
  1206.  
  1207.                                        In case a user wants to download 3
  1208.                                        files, entering 'Send #' in this
  1209.                                        field causes the following to be
  1210.                                        written in the control file:
  1211.  
  1212.                                             Send C:\PB\FILES\COMM\TM.ZIP
  1213.                                             Send C:\PB\FILES\COMM\TBILL.ZIP
  1214.                                             Send C:\PB\FILES\UTIL\SHEZ55.ZIP
  1215.  
  1216.                                        You can always take a look at the
  1217.                                        pre-configured protocols, to lighten
  1218.                                        things up for you.
  1219.  
  1220.          UL String ................... Same as the previous field, for
  1221.                                        uploads. This field is seldomly used.
  1222.                                        (Never in fact)
  1223.  
  1224.          DL Keyword .................. In order to allow ProBoard to update
  1225.                                        the user-records from the protocol's
  1226.                                        log file, a keyword must be
  1227.                                        specified to indicate a file has
  1228.                                        successfully been sent. If a protocol
  1229.                                        writes 'Sent <filename>' in the
  1230.                                        logfile, you should specify 'Sent'
  1231.                                        as the keyword. This keyword is CASE
  1232.                                        SENSITIVE!
  1233.  
  1234.          UL Keyword .................. Same as the previous field, for
  1235.                                        uploads.
  1236.  
  1237.  
  1238.  
  1239.  
  1240.  
  1241.  
  1242.  
  1243.  
  1244.  
  1245.  
  1246.  
  1247.  
  1248.                                       - 21 -
  1249.  
  1250.  
  1251.  
  1252.          Wordnr ...................... This is the number of the sent file's
  1253.                                        filename, counting from the keyword,
  1254.                                        but NOT including the keyword. This
  1255.                                        is used for both uploads and
  1256.                                        downloads.
  1257.  
  1258.                                        Eg. Sent 12/05/90 12334 PB_100.ZIP
  1259.  
  1260.                                        In this case, you should enter '3'
  1261.                                        as the word number, because
  1262.                                        PB_100.ZIP is the third word counting
  1263.                                        from, but not including, the
  1264.                                        keyword ('Sent').
  1265.  
  1266.          Efficiency .................. A percentage that gives the
  1267.                                        throughput efficiency for this
  1268.                                        protocol. This value is used to
  1269.                                        estimate the time needed to perform
  1270.                                        a file transfer.
  1271.  
  1272.          CONCLUSION:
  1273.  
  1274.          Correctly installing the protocols may seem somewhat difficult at
  1275.          first, but you will soon get used to it. And don't forget that the
  1276.          most popular protocols are already pre-configured in ProBoard!
  1277.  
  1278.  
  1279.  
  1280.          Message areas
  1281.          ──────────────────────────────────────────────────────────────────
  1282.  
  1283.          ProBoard can have up to 200 different message areas. Each message
  1284.          area has its own name and properties; you could have message
  1285.          areas for public messages only, and areas for Echomail.
  1286.          You can configure all of this with the message area editor.
  1287.          Selecting 'Message areas' from the main menu, gives you a list of
  1288.          the available areas (which initially is empty of course). You
  1289.          edit a message area by pressing [Enter].
  1290.  
  1291.          A message area has the following fields:
  1292.  
  1293.  
  1294.          Name ........................ Name of this message area.
  1295.  
  1296.  
  1297.  
  1298.  
  1299.  
  1300.  
  1301.  
  1302.  
  1303.  
  1304.                                       - 22 -
  1305.  
  1306.  
  1307.  
  1308.          Message kind ................ The kind of message. You can have:
  1309.  
  1310.                                          - Local         Local messages
  1311.                                          - Echo          Echomail
  1312.                                          - Net           Netmail
  1313.                                          - Pvt Echo      Private Echomail
  1314.  
  1315.                                        One word about the difference between
  1316.                                        the "Echo" type and the "Pvt Echo"
  1317.                                        type: In "Echo" areas, it is not
  1318.                                        allowed to delete messages that have
  1319.                                        been exported by an echomail
  1320.                                        processor (as specified by the FTSC,
  1321.                                        the FidoNet Technical Standards
  1322.                                        Committee). In a "Pvt Echo" area, this
  1323.                                        restriction is not imposed.
  1324.  
  1325.          Message type ................ One of the following:
  1326.  
  1327.                                          - Private only  Only private
  1328.                                                          messages allowed.
  1329.                                          - Pvt/Public    Private or public
  1330.                                                          messages allowed.
  1331.                                          - Public only   Only public
  1332.                                                          messages allowed.
  1333.  
  1334.          Name Options ................ Determines which names can be used
  1335.                                        to write messages in this area. This
  1336.                                        can be:
  1337.  
  1338.                                            - Real Names Only
  1339.                                            - Free Alias
  1340.                                            - Fixed Alias
  1341.  
  1342.                                        It is recommended that areas where
  1343.                                        aliases are allowed, are made
  1344.                                        "Public Only".
  1345.  
  1346.          Read Level .................. Level needed to read messages in
  1347.                                        this area.
  1348.  
  1349.          Read Flags .................. Flags needed to read messages in
  1350.                                        this area.
  1351.  
  1352.          Write Level ................. Level needed to write messages in
  1353.                                        this area.
  1354.  
  1355.          Write Flags ................. Flags needed to write messages in
  1356.                                        this area.
  1357.  
  1358.  
  1359.  
  1360.                                       - 23 -
  1361.  
  1362.  
  1363.  
  1364.          Sysop Level ................. Level needed to be allowed EVERYTHING
  1365.                                        in this message area.
  1366.  
  1367.          Sysop Flags ................. Flags needed to be allowed EVERYTHING
  1368.                                        in this message area.
  1369.  
  1370.          Origin Line ................. Only for Echomail: if you do not
  1371.                                        specify this, the default origin
  1372.                                        line will be used (refer to
  1373.                                        'System parameters').
  1374.  
  1375.          Use AKA ..................... The network address for this area
  1376.                                        (for Echomail & Netmail only).
  1377.  
  1378.          Kill after xx days .......... When running the PBUtil 'message-
  1379.                                        killer', all messages that have
  1380.                                        been in the messagebase for xx days
  1381.                                        will be deleted.
  1382.  
  1383.          Kill rcvd after xx days ..... When running the PBUtil 'message-
  1384.                                        killer', all messages that have
  1385.                                        been received for xx days will be
  1386.                                        deleted.
  1387.  
  1388.          Max # messages .............. The maximum number of messages
  1389.                                        allowed in this area. When this
  1390.                                        number is exceeded, PBUtil will
  1391.                                        delete the oldest messages from
  1392.                                        the messagebase.
  1393.  
  1394.  
  1395.  
  1396.          File areas
  1397.          ──────────────────────────────────────────────────────────────────
  1398.  
  1399.          File areas are used to categorize downloadable files. You can even
  1400.          prevent groups of users to access certain file areas.
  1401.  
  1402.          A file area has the following fields:
  1403.  
  1404.  
  1405.          Area name.................... Name of this file area.
  1406.  
  1407.          Listing file................. Full path & filename of the file in
  1408.                                        which the downloadable files are
  1409.                                        described (more about this in the
  1410.                                        menu-functions description).
  1411.  
  1412.          File Location................ Directory where the files in this
  1413.                                        area are located.
  1414.  
  1415.  
  1416.                                       - 24 -
  1417.  
  1418.  
  1419.  
  1420.          Access Level................. Level needed to download files in
  1421.                                        this area.
  1422.  
  1423.          Access Flags................. Flags needed to download files in
  1424.                                        this area.
  1425.  
  1426.          CD-ROM Option................ Setting this option to 'Yes' makes
  1427.                                        the file listings look somewhat
  1428.                                        different (refer to the 'List Files'
  1429.                                        function).
  1430.  
  1431.          Max. files................... Maximum number of files that can be
  1432.                                        downloaded from this area per
  1433.                                        user per day (0 means unlimited).
  1434.  
  1435.          Max. Kb...................... Maximum number of Kbytes that can be
  1436.                                        downloaded from this area per
  1437.                                        user per day (0 means unlimited).
  1438.  
  1439.  
  1440.  
  1441.          Time/Download Limits
  1442.          ──────────────────────────────────────────────────────────────────
  1443.  
  1444.          In ProBoard you can grant different groups of users different
  1445.          rights concerning download-limits and maximum online time per day.
  1446.          Additionally, you can limit downloading in a very powerful and
  1447.          flexible way.
  1448.  
  1449.          Editing user levels is done in the usual way (<Ins>,<Del>,
  1450.          <Enter>).
  1451.  
  1452.          These are the fields to be specified for each level:
  1453.  
  1454.  
  1455.          Security Level............... The userlevel you are editing. More
  1456.                                        about this later.
  1457.  
  1458.          Time per day................. Time a user with this level can
  1459.                                        spend on your system each day.
  1460.  
  1461.          Kb download per day.......... Daily download-limit associated with
  1462.                                        this user level (in Kbytes/day).
  1463.  
  1464.          Download delay............... Time to be spent per session before
  1465.                                        a download can be made (great to
  1466.                                        calm down excessive downloaders).
  1467.  
  1468.  
  1469.  
  1470.  
  1471.  
  1472.                                       - 25 -
  1473.  
  1474.  
  1475.  
  1476.          Usergroup ID................. String of max. 5 characters that
  1477.                                        identifies this level, eg. NEW,
  1478.                                        REG, VIP. This is optional.
  1479.                                        These ID's will be shown in the
  1480.                                        user listing.
  1481.  
  1482.          Free Download................ The amount that can be downloaded
  1483.                                        by users with this level, without
  1484.                                        having to upload or write messages.
  1485.  
  1486.          Upload Factor................ The percentage of total downloads
  1487.                                        the user has to upload.
  1488.                                        Eg. if the upload factor is 15%, and
  1489.                                        a user has downloaded 1000Kb, he
  1490.                                        will have to upload 150Kb.
  1491.                                        Setting this to 0 allows the users
  1492.                                        to download as much as they want,
  1493.                                        until the download limit (see below)
  1494.                                        is reached. Of course, it is
  1495.                                        impossible to download more than the
  1496.                                        daily maximum each day.
  1497.  
  1498.          Kb / Message................. The amount of Kilobytes that can be
  1499.                                        downloaded free for each message
  1500.                                        written. This rewards busy message-
  1501.                                        writers by increasing their download-
  1502.                                        limit. The amount of kilobytes is
  1503.                                        added to the free download number
  1504.                                        (see above)
  1505.  
  1506.          Download Limit / Fallto...... When this limit is set to a positive
  1507.                                        non-zero value, and a user reaches
  1508.                                        this limit, his/her level will be
  1509.                                        changed to the "Fallto" level.
  1510.  
  1511.  
  1512.  
  1513.          Modem parameters
  1514.          ──────────────────────────────────────────────────────────────────
  1515.  
  1516.          You don't have to change these parameters when using ProBoard with
  1517.          a mailer. Should ProBoard, however, need to answer the phone, you
  1518.          may want to take a look at (and change) these parameters.
  1519.  
  1520.  
  1521.  
  1522.  
  1523.  
  1524.  
  1525.  
  1526.  
  1527.  
  1528.                                       - 26 -
  1529.  
  1530.  
  1531.  
  1532.          You can place special codes in the modem command strings:
  1533.  
  1534.              ^    DTR high
  1535.              `    DTR low
  1536.              |    Sends <Return> to the modem
  1537.              ~    Pauses for 1/2 second
  1538.  
  1539.  
  1540.          Max. Baud Rate............... Maximum baud rate your modem can
  1541.                                        handle.
  1542.  
  1543.          Com-port..................... Number of the com-port the modem is
  1544.                                        connected to (1-8).
  1545.  
  1546.          Blanktime (s)................ Time after which the (YOUR) screen
  1547.                                        goes blank, to prevent burn-in.
  1548.  
  1549.          Quiet mode................... Determines whether ProBoard should
  1550.                                        or shouldn't 'beep'.
  1551.  
  1552.          Modem delay.................. Number of 1/10 seconds to be paused
  1553.                                        between each character that is sent
  1554.                                        to the modem (some modems can't
  1555.                                        handle FAST input).
  1556.  
  1557.          Init string.................. String to be sent to the modem to
  1558.                                        initialize it and to have the modem
  1559.                                        ready to answer the phone.
  1560.  
  1561.          Init response................ String returned by the modem if the
  1562.                                        initialization was successful.
  1563.  
  1564.          Busy string.................. String to be sent to the modem when
  1565.                                        the BBS is off-line (because sysop
  1566.                                        pressed <Esc> or is locally logging
  1567.                                        in).
  1568.  
  1569.          XXX bps call................. String returned by the modem upon an
  1570.                                        XXX bps call. This is a 'partial'
  1571.                                        string. So if the modem sends
  1572.                                        'CONNECT 2400/REL', the string
  1573.                                        'CONNECT 2400' will match.
  1574.                                        A '|' can be used to specify a CR.
  1575.                                        (eg. 'CONNECT|' for a 300 bps call)
  1576.  
  1577.  
  1578.  
  1579.  
  1580.  
  1581.  
  1582.  
  1583.  
  1584.                                       - 27 -
  1585.  
  1586.  
  1587.  
  1588.          Events
  1589.          ──────────────────────────────────────────────────────────────────
  1590.  
  1591.          It is possible to instruct ProBoard to perform some action at a
  1592.          set time and day (an "Event"). This action can be: exiting with
  1593.          a specific errorlevel or executing a DOS-command.
  1594.  
  1595.          You can define up to 30 events. An event is described by the
  1596.          following fields:
  1597.  
  1598.  
  1599.          Enabled...................... If this is set to 'No', the event
  1600.                                        will be ignored.
  1601.  
  1602.          Active Days.................. Determines on what days of the week
  1603.                                        this event will run. To edit this
  1604.                                        field, press <Enter> and toggle
  1605.                                        the 'Yes/No' fields displayed next
  1606.                                        to each day.
  1607.  
  1608.          Event Time................... The time at which the event has to
  1609.                                        run on the selected days (in 24h
  1610.                                        format).
  1611.  
  1612.          Duration..................... How long this event has to stay
  1613.                                        active. During the event, no users
  1614.                                        are allowed to log in on ANY node.
  1615.  
  1616.          Event type................... 'Command' : A DOS-command will be
  1617.                                                    executed when the event
  1618.                                                    is activated.
  1619.                                        'Errlevel': When the event is
  1620.                                                    activated, PB.EXE will
  1621.                                                    exit with an errorlevel,
  1622.                                                    specified in the next
  1623.                                                    field.
  1624.  
  1625.          Errorlevel................... The errorlevel to use for this event
  1626.                                        if the event type is set to
  1627.                                        'Errorlevel'.
  1628.  
  1629.          DOS-command.................. The DOS-command to execute for this
  1630.                                        event if the event type is set to
  1631.                                        'Command'.
  1632.  
  1633.          Node number.................. An event will run on ONE node. You
  1634.                                        can specify the node here.
  1635.  
  1636.  
  1637.  
  1638.  
  1639.  
  1640.                                       - 28 -
  1641.  
  1642.  
  1643.  
  1644.          When using a frontend-mailer, you only have to specify the time,
  1645.          days and duration, because the events have to be executed by the
  1646.          mailer.
  1647.  
  1648.  
  1649.  
  1650.          Personal Files
  1651.          ──────────────────────────────────────────────────────────────────
  1652.  
  1653.          ProBoard allows users to send files to another user on the BBS.
  1654.          ProBoard keeps track of each uploaded file. You edit them with
  1655.          this option in ProCFG. In the list of files, a [+] means that the
  1656.          file exists in the private upload directory.
  1657.          To edit an entry, press <Enter>, to Delete an entry, press <Del>,
  1658.          and to add an entry, press <Ins>.
  1659.  
  1660.  
  1661.          Filename..................... Name of the uploaded file.
  1662.  
  1663.          From User.................... Who uploaded this file?
  1664.  
  1665.          To user...................... The destination user of this file.
  1666.  
  1667.          Date......................... The date on which this file was
  1668.                                        uploaded.
  1669.  
  1670.  
  1671.          It is possible to add files to this list. This way you can send a
  1672.          file to a specific user. Deleting files is possible too. If the
  1673.          file specified in the entry to be deleted physically exists,
  1674.          you will be asked if you want to delete the file on disk.
  1675.  
  1676.  
  1677.  
  1678.  
  1679.  
  1680.  
  1681.  
  1682.  
  1683.  
  1684.  
  1685.  
  1686.  
  1687.  
  1688.  
  1689.  
  1690.  
  1691.  
  1692.  
  1693.  
  1694.  
  1695.  
  1696.                                       - 29 -
  1697.  
  1698.  
  1699.  
  1700.                              ┌─────────────┐
  1701.                              │ V. SECURITY │
  1702.                              └─────────────┘
  1703.  
  1704.  
  1705.          Levels & Flags
  1706.          ──────────────────────────────────────────────────────────────────
  1707.  
  1708.          All security procedures toward a user are being done through the
  1709.          user's LEVEL and FLAGS. ProBoard can have levels ranging from 0 to
  1710.          32000, and provides 26 flags (A-Z) that can be ON or OFF.
  1711.  
  1712.          If a menu needs a certain level and flags are needed, then only the
  1713.          users with a level equal to or higher than that level and with all
  1714.          the needed flags will be able to SEE and CHOOSE this menu option.
  1715.          It will remain invisible to all the other users.
  1716.  
  1717.          An example will be given in the next chapter.
  1718.  
  1719.  
  1720.          Trashcan
  1721.          ──────────────────────────────────────────────────────────────────
  1722.  
  1723.          It is possible to specify names that cannot be used to log on to
  1724.          your system. Often used fake names are: "Sysop", "BBS", etc...
  1725.  
  1726.          You can specify these names in a textfile called TRASHCAN.CTL.
  1727.          Each line in this file specifies an unwanted or illegal name.
  1728.  
  1729.          An example file is included.
  1730.  
  1731.  
  1732.  
  1733.  
  1734.  
  1735.  
  1736.  
  1737.  
  1738.  
  1739.  
  1740.  
  1741.  
  1742.  
  1743.  
  1744.  
  1745.  
  1746.  
  1747.  
  1748.  
  1749.  
  1750.  
  1751.  
  1752.                                       - 30 -
  1753.  
  1754.  
  1755.  
  1756.                                  ┌───────────┐
  1757.                                  │ VI. MENUS │
  1758.                                  └───────────┘
  1759.  
  1760.  
  1761.          This is the most important part of a BBS, and therefore of
  1762.          ProBoard. Menus are the direct interface between a user and the
  1763.          BBS. They are used to execute all the BBS functions, and they can
  1764.          have their own submenus. They take care of security, by sealing
  1765.          themselves off from certain users or groups of users. ProBoard can
  1766.          make your BBS have a very personal look, as the menus can be built
  1767.          in a VERY flexible way.
  1768.  
  1769.  
  1770.          Setting up menus
  1771.          ──────────────────────────────────────────────────────────────────
  1772.  
  1773.          A menu is basically line-oriented. Every line is linked to a
  1774.          function to be executed and to a textline to be shown to the user.
  1775.          Every line/function has its own level and flags, to make sure that
  1776.          not all of the menu items are available to every user.
  1777.  
  1778.          A menu line has the following fields:
  1779.  
  1780.  
  1781.          Textline..................... Textline to be displayed to the user.
  1782.  
  1783.          Hotkey....................... Key to be pressed by the user to
  1784.                                        activate this menu item.
  1785.  
  1786.          Function..................... Function to be executed.
  1787.  
  1788.          Data......................... Data associated with this menu item.
  1789.  
  1790.          Level........................ Level needed to access this menu item.
  1791.  
  1792.          Flags........................ Flags needed to access this menu item.
  1793.  
  1794.          Color........................ Color of the menu line.
  1795.  
  1796.  
  1797.  
  1798.  
  1799.  
  1800.  
  1801.  
  1802.  
  1803.  
  1804.  
  1805.  
  1806.  
  1807.  
  1808.                                       - 31 -
  1809.  
  1810.  
  1811.  
  1812.          Menu security
  1813.          ──────────────────────────────────────────────────────────────────
  1814.  
  1815.          To clarify menu security, here's a simple example:
  1816.  
  1817.          Suppose we have 4 users with the following levels and flags:
  1818.  
  1819.             ┌──────────────────────┬───────┬─────────┐
  1820.             │  Name                │ Level │  Flags  │
  1821.             │----------------------│-------│---------│
  1822.             │ Pete                 │   10  │    Z    │
  1823.             │ Jerry                │  100  │    P    │
  1824.             │ Al                   │  100  │    R    │
  1825.             │ Charlie              │  200  │  P & R  │
  1826.             └──────────────────────┴───────┴─────────┘
  1827.  
  1828.          Let's define a menu with textlines only:
  1829.  
  1830.             ┌───────────────────────┬───────┬────────┐
  1831.             │ Text                  │ Level │ Flags  │
  1832.             │-----------------------│-------│--------│
  1833.             │ Good morning;         │   10  │        │
  1834.             │ ,;                    │   50  │   P    │
  1835.             │ Jerry                 │  100  │   P    │
  1836.             │ and;                  │  150  │        │
  1837.             │ Al;                   │  100  │   R    │
  1838.             │ send their best wishes│  200  │ P & R  │
  1839.             │ .                     │  300  │        │
  1840.             │ :-)                   │   10  │ X,Y,Z  │
  1841.             └───────────────────────┴───────┴────────┘
  1842.  
  1843.          This would give the following result when the menu is displayed:
  1844.  
  1845.             ┌─────────────────┬─────────────────────────────────┐
  1846.             │ Pete            │ Good morning                    │
  1847.             ╞═════════════════╪═════════════════════════════════╡
  1848.             │ Jerry           │ Good morning,Jerry              │
  1849.             ╞═════════════════╪═════════════════════════════════╡
  1850.             │ Al              │ Good morning,Al                 │
  1851.             ╞═════════════════╪═════════════════════════════════╡
  1852.             │ Charlie         │ Good morning, Jerry             │
  1853.             │                 │ and Al send their best wishes   │
  1854.             └─────────────────┴─────────────────────────────────┘
  1855.  
  1856.          The last lines of the menu will NEVER be displayed, because none
  1857.          of the 4 users have the required level AND flags.
  1858.  
  1859.  
  1860.  
  1861.  
  1862.  
  1863.  
  1864.                                       - 32 -
  1865.  
  1866.  
  1867.  
  1868.          Creating menus
  1869.          ──────────────────────────────────────────────────────────────────
  1870.  
  1871.          The BBS's main menu should be stored in the file TOP.MNU. All the
  1872.          other menus can have any filename you want to give it.
  1873.  
  1874.          When you select the 'Menu Editor' option in PROCFG's main menu, a
  1875.          new window will be opened containing the menus already available.
  1876.  
  1877.          In this window, you can use the following keys:
  1878.  
  1879.            - Up/Down       Scroll up/down.
  1880.            - Enter         Select a menu.
  1881.            - Ins           Add a menu.
  1882.  
  1883.          When you have selected a menu, a list of all the menu items will
  1884.          be displayed. To add a menu item, just move past the last item and
  1885.          press <Enter>. To insert an item, press <Ins>, to remove one,
  1886.          press <Del>. To edit a menu item, move the selector to that item
  1887.          and press <Enter>.
  1888.          You can change the menu prompt and highlight colors by pressing
  1889.          Alt-P. If you want to see how a menu will look like, press Alt-S.
  1890.  
  1891.          A menu item has the following fields:
  1892.  
  1893.  
  1894.          Textline..................... This is the string to be displayed.
  1895.                                        Leaving this field blank causes a
  1896.                                        blank line to be displayed to the
  1897.                                        user. A CR/LF will be sent after
  1898.                                        the menu line. To avoid this, just
  1899.                                        enter a ';' as the last character.
  1900.                                        This will cause the next textline
  1901.                                        of the menu to be appended to this
  1902.                                        one.
  1903.  
  1904.                                        Special textline characters:
  1905.  
  1906.                                           ^ : Switches between normal and
  1907.                                               highlighted color.
  1908.                                           ~ : Replaced by the number of
  1909.                                               minutes the user has left in
  1910.                                               this session.
  1911.                                           ` : Replaced by the name of the
  1912.                                               current message area (more
  1913.                                               about this later).
  1914.                                           @ : Replaced by the name of the
  1915.                                               current file area (more about
  1916.                                               this later).
  1917.  
  1918.  
  1919.  
  1920.                                       - 33 -
  1921.  
  1922.  
  1923.  
  1924.                                        This textline can also contain
  1925.                                        text-macros like @<NAME>@ or
  1926.                                        @<NODE>@. More about this in the
  1927.                                        "Text macros" section.
  1928.  
  1929.          Hotkey....................... Most of the menu functions must be
  1930.                                        chosen by the user, so ProBoard must
  1931.                                        react to certain key-presses from
  1932.                                        the user. Receiving the hotkey for a
  1933.                                        certain menu item will cause
  1934.                                        ProBoard to execute the function
  1935.                                        associated with this item.
  1936.                                        The hotkey can be any ASCII
  1937.                                        character or digit, and sometimes
  1938.                                        even ?./+ etc. ,but one character
  1939.                                        has a special meaning to ProBoard:
  1940.                                        pressing <Ctrl-A> will make this
  1941.                                        function AUTOEXEC, which means that
  1942.                                        this function will be executed as
  1943.                                        soon as this menu item is displayed
  1944.                                        (without really selecting this
  1945.                                        option).
  1946.  
  1947.          Function..................... The function associated with this
  1948.                                        menu item. Pressing the <Enter> key
  1949.                                        will cause a complete list of all
  1950.                                        the menu functions to be displayed
  1951.                                        in a separate window.
  1952.  
  1953.          Data......................... This field is optional with some of
  1954.                                        the functions. Basically, in this
  1955.                                        field you enter the parameters of a
  1956.                                        menu function. Eg. function 40
  1957.                                        (Display ASC/ANS file) needs a file-
  1958.                                        name as data (parameter). Function 1
  1959.                                        (Goto menu) needs the name of the
  1960.                                        menu to be jumped into.
  1961.                                        Text-macros can be inserted (see
  1962.                                        "Text macros" section).
  1963.  
  1964.          Level........................ Level needed to access this menu
  1965.                                        item.
  1966.  
  1967.          Flags........................ Flags needed to access this menu
  1968.                                        item.
  1969.  
  1970.          Color........................ Color for the menu's textline to be
  1971.                                        displayed in.
  1972.  
  1973.  
  1974.  
  1975.  
  1976.                                       - 34 -
  1977.  
  1978.  
  1979.  
  1980.          Hints
  1981.          ──────────────────────────────────────────────────────────────────
  1982.  
  1983.          You can create a menu by using textlines, but you can also create
  1984.          menus that display a file to the user, in which all the options
  1985.          are shown. This technique works as follows:
  1986.  
  1987.          The first item in the menu should have ';' as textline and
  1988.          <Ctrl-A> (autoexec) as hotkey. The function to be executed should
  1989.          be function 40 (Display file with hotkeys). When the user accesses
  1990.          this menu, the specified file will immediately be sent. Setting
  1991.          all the remaining textlines of the menu to ';' will cause
  1992.          NOTHING BUT this file to be displayed.
  1993.          Combined with the use of text macros, this allows you to show
  1994.          different looking menus for each node you are running. For
  1995.          example, if you use function 40, and enter "MAIN@<NODE>@" in the
  1996.          data field, node 1 will see file MAIN1 , node 2 will see MAIN2,
  1997.          etc...
  1998.  
  1999.          If you need more information about this, you can always take a look
  2000.          at the example menus.
  2001.  
  2002.  
  2003.  
  2004.          Menu functions overview
  2005.          ──────────────────────────────────────────────────────────────────
  2006.  
  2007.          In this function overview, parameters between <> are REQUIRED,
  2008.          and parameters between [] are optional.
  2009.  
  2010.  
  2011.  
  2012.  
  2013.  
  2014.  
  2015.  
  2016.  
  2017.  
  2018.  
  2019.  
  2020.  
  2021.  
  2022.  
  2023.  
  2024.  
  2025.  
  2026.  
  2027.  
  2028.  
  2029.  
  2030.  
  2031.  
  2032.                                       - 35 -
  2033.  
  2034.  
  2035.  
  2036.          ┌────────────────────────────────────────────────────────────────┐
  2037.          │ Function 1: GOTO MENU                                          │
  2038.          └────────────────────────────────────────────────────────────────┘
  2039.  
  2040.          DATA: <menu name> [/M=<nr msgarea>] [/F=<nr filearea>] [/P=<pwd>]
  2041.  
  2042.  
  2043.          This function makes ProBoard jump to menu <menu name>.
  2044.  
  2045.          Option /M can be used to define one single menu for several
  2046.          message areas. You could jump to a 'general' message area menu and
  2047.          pass option /M=3, to make message area 3 active for the selected
  2048.          menu. Please refer to function 23 (Read messages) for more
  2049.          information about this option.
  2050.  
  2051.          Option /F works exactly the same, but applies to file areas.
  2052.  
  2053.          It is possible to protect a menu with a password by using the /P=
  2054.          option. For example: "SYSOP /P=Test" would protect menu "SYSOP"
  2055.          with the password "Test". The user will have to enter this
  2056.          password to be allowed to move to the menu.
  2057.  
  2058.          Data example:   MSG /M=5
  2059.  
  2060.  
  2061.  
  2062.          ┌────────────────────────────────────────────────────────────────┐
  2063.          │ Function 2: GOSUB MENU                                         │
  2064.          └────────────────────────────────────────────────────────────────┘
  2065.  
  2066.          DATA: <menu name> [/M=<nr msgarea>] [/F=<nr filearea>] [/P=pwd]
  2067.  
  2068.  
  2069.          This function is largely the same as the previous function (it
  2070.          even has the same parameters), but the menu this function is called
  2071.          from is pushed onto an internal stack. ProBoard will jump back to
  2072.          this menu when returning from menu <menu name> (by executing
  2073.          function 3).
  2074.  
  2075.  
  2076.  
  2077.          ┌────────────────────────────────────────────────────────────────┐
  2078.          │ Function 3: GOTO PREVIOUS MENU                                 │
  2079.          └────────────────────────────────────────────────────────────────┘
  2080.  
  2081.          DATA: -
  2082.  
  2083.  
  2084.          This function makes ProBoard go back to the previous menu if you
  2085.          used function 2.
  2086.  
  2087.  
  2088.                                       - 36 -
  2089.  
  2090.  
  2091.  
  2092.          ┌────────────────────────────────────────────────────────────────┐
  2093.          │ Function 4: GOTO MENU & CLEAR STACK                            │
  2094.          └────────────────────────────────────────────────────────────────┘
  2095.  
  2096.          DATA: <menu name> [/M=<nr msgarea>] [/F=<nr filearea>] [/P=pwd]
  2097.  
  2098.  
  2099.          This function performs the same tasks as function 1, AND will
  2100.          clear the existing menu stack, thus preventing the user from
  2101.          returning to the previous menu.
  2102.  
  2103.  
  2104.  
  2105.          ┌────────────────────────────────────────────────────────────────┐
  2106.          │ Function 5: SHOW ANS/ASC FILE                                  │
  2107.          └────────────────────────────────────────────────────────────────┘
  2108.  
  2109.          DATA: <filename>
  2110.  
  2111.  
  2112.          This function displays a file to the user with the extension .ANS
  2113.          or .ASC, depending on the user's ANSI-setting. The file must be
  2114.          stored in ProBoard's textfiles directory; <filename> should NOT
  2115.          contain an extension (max. eight characters). If ProBoard doesn't
  2116.          find the .ANS file, it will look for the .ASC file.
  2117.  
  2118.  
  2119.  
  2120.          ┌────────────────────────────────────────────────────────────────┐
  2121.          │ Function 6: CHANGE COUNTRY                                     │
  2122.          └────────────────────────────────────────────────────────────────┘
  2123.  
  2124.          DATA: -
  2125.  
  2126.  
  2127.          Allows the user to change the country in his user-record.
  2128.  
  2129.  
  2130.  
  2131.  
  2132.  
  2133.  
  2134.  
  2135.  
  2136.  
  2137.  
  2138.  
  2139.  
  2140.  
  2141.  
  2142.  
  2143.  
  2144.                                       - 37 -
  2145.  
  2146.  
  2147.  
  2148.          ┌────────────────────────────────────────────────────────────────┐
  2149.          │ Function 7: SHELL                                              │
  2150.          └────────────────────────────────────────────────────────────────┘
  2151.  
  2152.          DATA: <command line>
  2153.  
  2154.  
  2155.          With this function, you can instruct ProBoard to execute an
  2156.          external program from a shell.
  2157.  
  2158.          Parameter <command line> needs full path and filename (.COM or
  2159.          .EXE extension included), and may contain some special codes.
  2160.          These codes will (at run-time) be replaced by a value or a string.
  2161.  
  2162.          Special codes:
  2163.  
  2164.              **      Replaced by an asterisk ('*')
  2165.  
  2166.              *#      Replaced by the node number.
  2167.  
  2168.              *\      Sends the message "Sysop is shelling..." to the user
  2169.                      before the shell is executed, and the message "Sysop
  2170.                      has returned..." afterwards.
  2171.  
  2172.              *B      Baud rate on which user logged in.
  2173.  
  2174.              *C      Gives full path of the command interpreter, usually
  2175.                      C:\COMMAND.COM, by looking at the DOS environment
  2176.                      variable COMSPEC.
  2177.  
  2178.              *D      Writes a DOOR.SYS file to the current directory before
  2179.                      shelling.
  2180.  
  2181.              *E      Writes EXITINFO.BBS to the current directory before
  2182.                      shelling and reads it back afterwards.
  2183.  
  2184.              *F      User's first name.
  2185.  
  2186.              *G      Indicates whether user has ANSI (1) or ASCII (0) set.
  2187.  
  2188.              *H      Tells ProBoard not to disable the fossil driver when
  2189.                      shelling.
  2190.  
  2191.              *I      Maximum user-inactivity (seconds).
  2192.  
  2193.              *L      User's last name.
  2194.  
  2195.              *M      ProBoard's start-up directory (already contains '\').
  2196.  
  2197.              *N      Shell will NOT be logged in PROBOARD.LOG.
  2198.  
  2199.  
  2200.                                       - 38 -
  2201.  
  2202.  
  2203.  
  2204.              *P      Com-port used by ProBoard (1-8).
  2205.  
  2206.              *Q      Don't let user know that ProBoard is shelling (!).
  2207.  
  2208.              *R      User's record number in USERS.PRO.
  2209.  
  2210.              *S      ProBoard's system directory (incl. trailing '\')
  2211.  
  2212.              *T      Time left for the user today (minutes).
  2213.  
  2214.              *W      Runs the shell in a window , so the status on the last
  2215.                      line will not be cleared. This option only works with
  2216.                      programs that send their output to the standard output
  2217.                      device (no direct screen writes).
  2218.  
  2219.              *X      ALWAYS SWAP to disk/EMS, even if swapping is enabled
  2220.                      in ProCFG.
  2221.  
  2222.              *Y      DO NOT SWAP to disk/EMS.
  2223.  
  2224.              *1      Installs a timer-function when shelling, which
  2225.                      continuously redisplays the user's status line on the
  2226.                      first screenline. This can be used with ALL programs.
  2227.                      (Works great most full-screen protocols!)
  2228.  
  2229.              *2      Same as *1, but uses the bottom screenline (try this
  2230.                      with QuickEd!)
  2231.  
  2232.  
  2233.          Suppose ProBoard is in directory D:\PB.
  2234.  
  2235.          Data example: *Q*STEST.EXE *B
  2236.  
  2237.          ProBoard will execute D:\PB\TEST.EXE 2400 and the user won't see
  2238.          this happening.
  2239.  
  2240.          When shelling, ProBoard writes a standard DORINFOx.DEF file, where
  2241.          x stands for the node-number. An RA-compatible EXITINFO.BBS file
  2242.          and a DOORWAY-compatible DOOR.SYS can also be created by
  2243.          specifying the *E and/or *D options. All these files are created
  2244.          in the directory where ProBoard is started from.
  2245.  
  2246.  
  2247.  
  2248.  
  2249.  
  2250.  
  2251.  
  2252.  
  2253.  
  2254.  
  2255.  
  2256.                                       - 39 -
  2257.  
  2258.  
  2259.  
  2260.          ┌────────────────────────────────────────────────────────────────┐
  2261.          │ Function 8: SHOW VERSION INFORMATION                           │
  2262.          └────────────────────────────────────────────────────────────────┘
  2263.  
  2264.          DATA: -
  2265.  
  2266.  
  2267.          This function shows information about ProBoard's version number.
  2268.          If you have a registered copy of ProBoard, the sysop's name and
  2269.          BBS-name will be shown. With this function, you can show off to
  2270.          your users that you're a nice sysop: one that registered!
  2271.  
  2272.  
  2273.  
  2274.          ┌────────────────────────────────────────────────────────────────┐
  2275.          │ Function 9: LOGOFF                                             │
  2276.          └────────────────────────────────────────────────────────────────┘
  2277.  
  2278.          DATA: -
  2279.  
  2280.  
  2281.          Shows the file GOODBYE.ANS/ASC and hangs up the phone.
  2282.  
  2283.  
  2284.  
  2285.          ┌────────────────────────────────────────────────────────────────┐
  2286.          │ Function 10: SHOW SYSTEM USAGE PER HOUR                        │
  2287.          └────────────────────────────────────────────────────────────────┘
  2288.  
  2289.          DATA: -
  2290.  
  2291.  
  2292.          Shows a bar graph of the average system usage per hour. From the
  2293.          day you install ProBoard, it will keep track of a usage rate per
  2294.          hour and per day. If you want to reset the usage values, just
  2295.          delete the file TIMELOG.PRO or edit the values using ProCFG.
  2296.  
  2297.  
  2298.  
  2299.  
  2300.  
  2301.  
  2302.  
  2303.  
  2304.  
  2305.  
  2306.  
  2307.  
  2308.  
  2309.  
  2310.  
  2311.  
  2312.                                       - 40 -
  2313.  
  2314.  
  2315.  
  2316.          ┌────────────────────────────────────────────────────────────────┐
  2317.          │ Function 11: CHAT REQUEST                                      │
  2318.          └────────────────────────────────────────────────────────────────┘
  2319.  
  2320.          DATA: -
  2321.  
  2322.  
  2323.          This function allows the user to make a request to chat with the
  2324.          sysop. The user will be prompted for a reason why he wants to
  2325.          chat. The minimal length of this reason must be 5 characters.
  2326.  
  2327.          You can define your own page-melody by creating a RemoteAccess-
  2328.          compatible description file. The format of this file is described
  2329.          in the reference section.
  2330.  
  2331.  
  2332.  
  2333.          ┌────────────────────────────────────────────────────────────────┐
  2334.          │ Function 12: EXECUTE QUESTIONNAIRE SCRIPT                      │
  2335.          └────────────────────────────────────────────────────────────────┘
  2336.  
  2337.          DATA: <scriptname>
  2338.  
  2339.  
  2340.          This function executes a questionnaire. A questionnaire is a
  2341.          common ASCII-file containing several commands to be executed by
  2342.          ProBoard. A questionnaire scriptfile has an extension .Q-A, and
  2343.          the user's answers will be stored in a file with the same
  2344.          filename, but with extension .ASW.
  2345.          Starting from version 1.15, you can write very powerful
  2346.          questionnaires by using the ProBoard SDK.
  2347.  
  2348.          You can use the following commands in a scriptfile:
  2349.  
  2350.  
  2351.          ASK <length> <number of variable>
  2352.  
  2353.               eg: Ask 10 1
  2354.  
  2355.          Asks the user something. The user has <length> characters to
  2356.          answer, and the answer will be stored in the variable <number
  2357.          of variable>. The maximum number of variables in ProBoard is 20.
  2358.  
  2359.  
  2360.  
  2361.  
  2362.  
  2363.  
  2364.  
  2365.  
  2366.  
  2367.  
  2368.                                       - 41 -
  2369.  
  2370.  
  2371.  
  2372.          CHANGECOLOR <color>
  2373.  
  2374.               eg: ChangeColor 3
  2375.  
  2376.          Changes the color in which the following text will be displayed.
  2377.          The number <color> is the ANSI color code, which means that this
  2378.          function works only for users who use ANSI.
  2379.  
  2380.  
  2381.          CLEARSCREEN
  2382.  
  2383.          Well, what do you think?
  2384.  
  2385.  
  2386.          DISPLAY "<string>"
  2387.  
  2388.               eg: Display "Hi there!"
  2389.  
  2390.          Displays a string <string>. The string must be contained in double
  2391.          quotes; a '|' in a string will be replaced by CR/LF (new line).
  2392.  
  2393.  
  2394.          IF <number of variable> = "<string>"
  2395.  
  2396.                 eg. If 1 = "Y"
  2397.  
  2398.          Directs the .Q-A file according to the user's answers.
  2399.          If the condition is met, all commands after the IF-statement will
  2400.          be executed, until an ENDIF is encountered.
  2401.  
  2402.  
  2403.          ENDIF
  2404.  
  2405.          Ends an IF-statement.
  2406.  
  2407.               eg: Display "Do you have a hard disk?"
  2408.                   GetChoice YN 1
  2409.                   If 1 = "Y"
  2410.                     Display "Storage space in Mb?"
  2411.                     Ask 2
  2412.                   EndIf
  2413.                   Display "..."
  2414.  
  2415.  
  2416.          GETCHOICE <options> <number of variable>
  2417.  
  2418.               eg: GetChoice YN 1
  2419.  
  2420.          Forces the user to give a proper answer, chosen from <options>.
  2421.  
  2422.  
  2423.  
  2424.                                       - 42 -
  2425.  
  2426.  
  2427.  
  2428.          OUTPUTANSWER ["<description>"] <number of variable>
  2429.  
  2430.               eg: OutputAnswer "Name: " 1
  2431.  
  2432.          Writes ["<description>"] and the value in <number of variable> to
  2433.          the .ASW-file. <description> is optional.
  2434.  
  2435.  
  2436.          POSTINFO
  2437.  
  2438.          Writes a header to the .ASW-file. The header contains some general
  2439.          information about the user ("Peter Piper answered on ...").
  2440.  
  2441.  
  2442.  
  2443.          QUIT
  2444.  
  2445.          Ends execution of the questionnaire script.
  2446.  
  2447.  
  2448.  
  2449.          SETFLAG <flag> <ON/OFF>
  2450.  
  2451.               eg: SetFlag C ON
  2452.  
  2453.          Sets/clears user flag <flag>.
  2454.  
  2455.  
  2456.  
  2457.          ┌────────────────────────────────────────────────────────────────┐
  2458.          │ Function 13: DISPLAY USERLIST                                  │
  2459.          └────────────────────────────────────────────────────────────────┘
  2460.  
  2461.          DATA: -
  2462.  
  2463.  
  2464.          Prompts the user for a name (or part of a name) and goes looking
  2465.          for it in the name fields of USERS.PRO. If the user doesn't
  2466.          specify a string (if he presses <Enter>), the entire userlist
  2467.          will be displayed.
  2468.  
  2469.  
  2470.  
  2471.  
  2472.  
  2473.  
  2474.  
  2475.  
  2476.  
  2477.  
  2478.  
  2479.  
  2480.                                       - 43 -
  2481.  
  2482.  
  2483.  
  2484.          ┌────────────────────────────────────────────────────────────────┐
  2485.          │ Function 14: DISPLAY TIME INFO                                 │
  2486.          └────────────────────────────────────────────────────────────────┘
  2487.  
  2488.          DATA: -
  2489.  
  2490.  
  2491.          Displays information about the current time, time online,
  2492.          remaining time, etc.
  2493.  
  2494.  
  2495.  
  2496.          ┌────────────────────────────────────────────────────────────────┐
  2497.          │ Function 15: SHOW ANS/ASC FILE & WAIT                          │
  2498.          └────────────────────────────────────────────────────────────────┘
  2499.  
  2500.          DATA: <filename>
  2501.  
  2502.  
  2503.          Displays an ANS/ASC-file (like function 5) and waits for the user
  2504.          to press <Enter>.
  2505.  
  2506.  
  2507.  
  2508.          ┌────────────────────────────────────────────────────────────────┐
  2509.          │ Function 16: CHANGE CITY                                       │
  2510.          └────────────────────────────────────────────────────────────────┘
  2511.  
  2512.          DATA: -
  2513.  
  2514.  
  2515.          Allows the user to change the city in his user-record.
  2516.  
  2517.  
  2518.  
  2519.          ┌────────────────────────────────────────────────────────────────┐
  2520.          │ Function 17: CHANGE PASSWORD                                   │
  2521.          └────────────────────────────────────────────────────────────────┘
  2522.  
  2523.          DATA: -
  2524.  
  2525.  
  2526.          Allows the user to change his password.
  2527.  
  2528.  
  2529.  
  2530.  
  2531.  
  2532.  
  2533.  
  2534.  
  2535.  
  2536.                                       - 44 -
  2537.  
  2538.  
  2539.  
  2540.          ┌────────────────────────────────────────────────────────────────┐
  2541.          │ Function 18: CHANGE SCREENLENGTH                               │
  2542.          └────────────────────────────────────────────────────────────────┘
  2543.  
  2544.          DATA: -
  2545.  
  2546.  
  2547.          Allows the user to change his screen's length (# lines).
  2548.  
  2549.  
  2550.  
  2551.          ┌────────────────────────────────────────────────────────────────┐
  2552.          │ Function 19: TOGGLE CLEARSCREEN CODES                          │
  2553.          └────────────────────────────────────────────────────────────────┘
  2554.  
  2555.          DATA: -
  2556.  
  2557.  
  2558.          Allows the user to decide whether he wants clearscreen-codes sent
  2559.          or not.
  2560.  
  2561.  
  2562.  
  2563.          ┌────────────────────────────────────────────────────────────────┐
  2564.          │ Function 20: TOGGLE MORE PROMPT                                │
  2565.          └────────────────────────────────────────────────────────────────┘
  2566.  
  2567.          DATA: -
  2568.  
  2569.  
  2570.          Allows the user to decide whether scrolling should pause when the
  2571.          screen is full.
  2572.  
  2573.  
  2574.  
  2575.          ┌────────────────────────────────────────────────────────────────┐
  2576.          │ Function 21: TOGGLE ANSI CODES                                 │
  2577.          └────────────────────────────────────────────────────────────────┘
  2578.  
  2579.          DATA: -
  2580.  
  2581.  
  2582.          Allows the user to choose ANSI graphics/colors or not.
  2583.  
  2584.  
  2585.  
  2586.  
  2587.  
  2588.  
  2589.  
  2590.  
  2591.  
  2592.                                       - 45 -
  2593.  
  2594.  
  2595.  
  2596.          ┌────────────────────────────────────────────────────────────────┐
  2597.          │ Function 22: CHECK FOR PERSONAL MAIL & FILES                   │
  2598.          └────────────────────────────────────────────────────────────────┘
  2599.  
  2600.          DATA: -
  2601.  
  2602.  
  2603.          Searches all the message areas for messages addressed to the user
  2604.          that have not yet been received by him.
  2605.          This function also checks for personal files addressed to him/her.
  2606.  
  2607.  
  2608.  
  2609.          ┌────────────────────────────────────────────────────────────────┐
  2610.          │ Function 23: READ MESSAGES                                     │
  2611.          └────────────────────────────────────────────────────────────────┘
  2612.  
  2613.          DATA: <area> or <*> or <0>
  2614.  
  2615.  
  2616.          Allows the user to read a message. If <area> is specified (a
  2617.          number ranging from 1 to 200), then only messages from message
  2618.          area <area> can be read. If <*> is specified, only messages from
  2619.          the active area can be read (refer to the goto/gosub menu functions
  2620.          and to function 49). If <0> is specified, only messages from areas
  2621.          selected in the combined boards can be read.
  2622.  
  2623.          The user has several options when reading messages:
  2624.  
  2625.             Forward        : First to last.
  2626.  
  2627.             Reverse        : Last to first.
  2628.  
  2629.             New            : New messages not read by the user.
  2630.  
  2631.             Selected       : Messages selected by name or subject.
  2632.  
  2633.             Marked         : Marked messages only.
  2634.  
  2635.  
  2636.          When a message is read, the user has the following options:
  2637.  
  2638.             Next           : Next message.
  2639.  
  2640.             Previous       : Previous Message
  2641.  
  2642.             Again          : Show this message again.
  2643.  
  2644.             Stop           : Stop reading messages.
  2645.  
  2646.  
  2647.  
  2648.                                       - 46 -
  2649.  
  2650.  
  2651.  
  2652.             Mark           : Mark this message for later use.
  2653.  
  2654.             Reply          : Reply to this message. The entire message will
  2655.                              be passed to the external fullscreen editor,
  2656.                              thus making it possible to quote text from the
  2657.                              original message in your reply.
  2658.  
  2659.             Unread         : Set this message to 'Not received'.
  2660.  
  2661.             Delete         : Delete this message from the message base.
  2662.  
  2663.             Forward        : Copy the message and address it to somebody
  2664.                              else.
  2665.  
  2666.             Move           : Move this message to an other message area.
  2667.  
  2668.             Private        : Toggles the private/public status of the
  2669.                              message.
  2670.  
  2671.             Export         : Export this message to any file.
  2672.  
  2673.             + / -          : Show the next/previous message in the
  2674.                              reply-chain.
  2675.  
  2676.             Original       : Go back to the message where you first used
  2677.                              +/- to follow replies.
  2678.  
  2679.  
  2680.          ┌────────────────────────────────────────────────────────────────┐
  2681.          │ Function 24: SCAN MESSAGES                                     │
  2682.          └────────────────────────────────────────────────────────────────┘
  2683.  
  2684.          DATA: <area> or <*> or <0>
  2685.  
  2686.  
  2687.          Gives an overview of the messages. Only the message-header will
  2688.          be displayed, and the user has the possibility to mark messages
  2689.          for later retrieval. The options follow the same rules as in
  2690.          function 23 (Read messages).
  2691.  
  2692.  
  2693.  
  2694.  
  2695.  
  2696.  
  2697.  
  2698.  
  2699.  
  2700.  
  2701.  
  2702.  
  2703.  
  2704.                                       - 47 -
  2705.  
  2706.  
  2707.  
  2708.          ┌────────────────────────────────────────────────────────────────┐
  2709.          │ Function 25: QUICKSCAN MESSAGES                                │
  2710.          └────────────────────────────────────────────────────────────────┘
  2711.  
  2712.          DATA: <area>/<*>/<0>
  2713.  
  2714.  
  2715.          Same as the previous function, but only an overview in short form
  2716.          is displayed. The user does not have the possibility to mark
  2717.          messages. The options follow the same rules as in function 23
  2718.          (Read messages).
  2719.  
  2720.  
  2721.  
  2722.          ┌────────────────────────────────────────────────────────────────┐
  2723.          │ Function 26: DISPLAY TIME INFO                                 │
  2724.          └────────────────────────────────────────────────────────────────┘
  2725.  
  2726.          DATA: -
  2727.  
  2728.  
  2729.          Displays some interesting statistics about the current user, like
  2730.          time remaining, daily time limit, etc...
  2731.  
  2732.  
  2733.          ┌────────────────────────────────────────────────────────────────┐
  2734.          │ Function 27: WRITE A MESSAGE                                   │
  2735.          └────────────────────────────────────────────────────────────────┘
  2736.  
  2737.          DATA: <area> or <*> [/L]  [/T="<name of addressee>"]
  2738.  
  2739.  
  2740.          Allows the user to write a message. The area <area> (a number
  2741.          ranging from 1 to 200) can be replaced by <*> (refer to function 23).
  2742.  
  2743.          Optional parameters:
  2744.  
  2745.            /L      The user will be logged off after writing this message.
  2746.  
  2747.            /T      The destination (the addressee's name) is automatically
  2748.                    specified. It is not necessary to use quotes (") when
  2749.                    the username does not contain spaces.
  2750.  
  2751.           eg:     /T=Sysop           Writes a message to the sysop.
  2752.  
  2753.                   /T="Peter Piper"   Writes a message to Peter Piper.
  2754.  
  2755.  
  2756.  
  2757.  
  2758.  
  2759.  
  2760.                                       - 48 -
  2761.  
  2762.  
  2763.  
  2764.          ┌────────────────────────────────────────────────────────────────┐
  2765.          │ Function 28: COMBINED BOARDS SELECT                            │
  2766.          └────────────────────────────────────────────────────────────────┘
  2767.  
  2768.          DATA: -
  2769.  
  2770.  
  2771.          Allows the user to select multiple message areas when using the
  2772.          'combined boards read/scan' function. This is useful when a user
  2773.          is not interested in certain message areas.
  2774.  
  2775.  
  2776.  
  2777.          ┌────────────────────────────────────────────────────────────────┐
  2778.          │ Function 29: SYSTEM USAGE PER WEEK                             │
  2779.          └────────────────────────────────────────────────────────────────┘
  2780.  
  2781.          DATA: -
  2782.  
  2783.  
  2784.          Displays a graph of the system-usage in percent for the last 24
  2785.          weeks.
  2786.  
  2787.  
  2788.  
  2789.          ┌────────────────────────────────────────────────────────────────┐
  2790.          │ Function 30: SHOW DIRECTORY                                    │
  2791.          └────────────────────────────────────────────────────────────────┘
  2792.  
  2793.          DATA: [directoryname]
  2794.  
  2795.  
  2796.          Shows a list of all the files stored in the specified directory.
  2797.          If no directory is given, the user will be prompted for one.
  2798.  
  2799.  
  2800.  
  2801.          ┌────────────────────────────────────────────────────────────────┐
  2802.          │ Function 31: LIST FILES                                        │
  2803.          └────────────────────────────────────────────────────────────────┘
  2804.  
  2805.          DATA: <area> or <X>
  2806.  
  2807.  
  2808.          Lists the files in the specified file area. If <X> was specified,
  2809.          the files in the active file area will be shown. The list of these
  2810.          files must be stored in a textfile created by the sysop (refer to
  2811.          file area configuration). This textfile should contain the names
  2812.          and descriptions of the files. The description can be of any form
  2813.          you like.
  2814.  
  2815.  
  2816.                                       - 49 -
  2817.  
  2818.  
  2819.  
  2820.          A line in the textfile should look like this:
  2821.  
  2822.          a) <filename> <blanks> <description>
  2823.  
  2824.              Filename + date + size + description will be displayed in the
  2825.              appropriate colors.
  2826.  
  2827.  
  2828.          b) <+> <description>
  2829.  
  2830.              The <+> will cause the description to be placed at the same
  2831.              horizontal cursor position and in the same color as the
  2832.              description from (a). This line will be displayed when
  2833.              searching for files.
  2834.  
  2835.  
  2836.          c) <!> <description>
  2837.  
  2838.              The description will be placed at the left of the screen, in
  2839.              the same color as the descriptions above. This line will be
  2840.              displayed when searching for files.
  2841.  
  2842.  
  2843.          d) <;> <description>
  2844.  
  2845.              Same as in (c), but the color is white.
  2846.  
  2847.          e) <description>
  2848.  
  2849.              Same as in (d), but this line will NOT be displayed when
  2850.              searching for files.
  2851.  
  2852.  
  2853.          Example:
  2854.  
  2855.          =============================================================
  2856.          PB_110.ZIP ProBoard version 1.10
  2857.          +Best BBS program in the world
  2858.          !Original Belgian Product
  2859.          ;Flanders' Technology !!!
  2860.          =============================================================
  2861.  
  2862.  
  2863.  
  2864.  
  2865.  
  2866.  
  2867.  
  2868.  
  2869.  
  2870.  
  2871.  
  2872.                                       - 50 -
  2873.  
  2874.  
  2875.  
  2876.          This will be output as:
  2877.  
  2878.          ============================================================= [c2]
  2879.          PB_110.ZIP   18/12/90 268583    ProBoard version 1.10         [c1]
  2880.                                          Best BBS program in the world [c1]
  2881.          Original Belgian Product                                      [c1]
  2882.          Flanders' Technology !!!                                      [c2]
  2883.          ============================================================= [c2]
  2884.  
  2885.          [c1] stands for color 1, [c2] stands for color 2.
  2886.  
  2887.          If a file area is configured as being CD-ROM, the file listing
  2888.          should look slightly different. Option (a) will become:
  2889.  
  2890.          a) <filename><blanks><date><blanks><filesize><blanks><description>
  2891.  
  2892.  
  2893.          There is one more thing you can do to make your file listings more
  2894.          colorful (previously undocumented) : Inserting Ctrl-A to Ctrl-G
  2895.          characters in your file listing will change the color to:
  2896.  
  2897.                 Ctrl-A   Red
  2898.                 Ctrl-B   Green
  2899.                 Ctrl-C   Yellow
  2900.                 Ctrl-D   Magenta
  2901.                 Ctrl-E   Blue
  2902.                 Ctrl-F   Cyan
  2903.                 Ctrl-G   White
  2904.  
  2905.  
  2906.          ┌────────────────────────────────────────────────────────────────┐
  2907.          │ Function 32: DOWNLOAD A FILE                                   │
  2908.          └────────────────────────────────────────────────────────────────┘
  2909.  
  2910.          DATA: <area selection> or </A> or </F<filename>> or </P>
  2911.  
  2912.  
  2913.          Allows the user to download a file. The file areas a user can
  2914.          download from are defined by the area selection. This is a list
  2915.          of area-specifications, separated by blanks. Each specification
  2916.          has the form:
  2917.  
  2918.          [+]<area>
  2919.          <-><area>
  2920.  
  2921.          The '+' sign stands for 'Include this area in the area-list', and
  2922.          is optional.
  2923.          The '-' sign stands for 'Exclude this area from the area-list'.
  2924.  
  2925.          The parameter <area> should be one of the following:
  2926.  
  2927.  
  2928.                                       - 51 -
  2929.  
  2930.  
  2931.  
  2932.             *               All areas.
  2933.             C               CD-ROM areas only.
  2934.             X               Currently active area.
  2935.             <n>             Area number <n>.
  2936.             <n1-n2>         Areas <n1> to <n2>.
  2937.  
  2938.          Examples:
  2939.  
  2940.             *               All areas
  2941.             * -C            All non-CD-ROM areas.
  2942.             * -3-9 +5       Areas 1,2,5,10,11,...
  2943.             X +2            Active area + area 2.
  2944.             C -2            All CD-ROM areas, except area 2
  2945.  
  2946.          Of course, a user must have the necessary download-rights in an
  2947.          area to be allowed to download files from it.
  2948.  
  2949.  
  2950.          You can also specify 3 other parameters:
  2951.  
  2952.            /A              Allows the user to download ANY file accessible
  2953.                            by DOS. When using this option, the full path
  2954.                            and filename must be specified. This option is
  2955.                            only intended for remote sysops.
  2956.  
  2957.            /F<filename>    The user will not be prompted for a file, but
  2958.                            the file <filename> will immediately be sent to
  2959.                            the user (useful for textfiles describing all
  2960.                            the files on the BBS).
  2961.                            Parameter <filename> should contain the full
  2962.                            pathname (eg. /FC:\PB\PB.DOC).
  2963.  
  2964.            /P              The user can only download personal files
  2965.                            addressed to him.
  2966.  
  2967.  
  2968.  
  2969.  
  2970.  
  2971.  
  2972.  
  2973.  
  2974.  
  2975.  
  2976.  
  2977.  
  2978.  
  2979.  
  2980.  
  2981.  
  2982.  
  2983.  
  2984.                                       - 52 -
  2985.  
  2986.  
  2987.  
  2988.          ┌────────────────────────────────────────────────────────────────┐
  2989.          │ Function 33: UPLOAD A FILE                                     │
  2990.          └────────────────────────────────────────────────────────────────┘
  2991.  
  2992.          DATA: [directory] or [/P]
  2993.  
  2994.  
  2995.          Allows the user to upload a file to the BBS. If [directory] is
  2996.          specified, the upload will be placed in that directory. If not,
  2997.          it will be placed in the default upload-directory specified in
  2998.          PROCFG. (unregistered versions will always use the default
  2999.          upload directory).
  3000.          Upon successful reception of the file, the user will be prompted
  3001.          for a description of that file. The description can be several
  3002.          lines. If it begins with a '/', this description will be written
  3003.          to the file FILES.PVT in the upload-directory, else it will be
  3004.          written to the file FILES.BBS.
  3005.  
  3006.          If the data field contains "/P", the user can upload a personal
  3007.          file to another user. In this case the upload will be placed in
  3008.          the private upload directory (specified in ProCFG).
  3009.  
  3010.  
  3011.  
  3012.          ┌────────────────────────────────────────────────────────────────┐
  3013.          │ Function 34: VIEW ARCHIVE                                      │
  3014.          └────────────────────────────────────────────────────────────────┘
  3015.  
  3016.          DATA: <area selection>
  3017.  
  3018.  
  3019.          View the contents of a ZIP/LZH/ZOO/ARC/ARJ-file. The file
  3020.          specification input by the user will be looked for in the areas
  3021.          specified in <area selection>. Please refer to function 32
  3022.          (Download) for more information.
  3023.  
  3024.  
  3025.  
  3026.          ┌────────────────────────────────────────────────────────────────┐
  3027.          │ Function 35: KEYWORD SEARCH                                    │
  3028.          └────────────────────────────────────────────────────────────────┘
  3029.  
  3030.          DATA: <area selection>
  3031.  
  3032.  
  3033.          Looks for a character string in the file descriptions. If the
  3034.          string is found, the related file and its description will be
  3035.          displayed. The character string will be looked for in the areas
  3036.          specified in <area selection>. Please refer to function 32
  3037.          (Download) for more information.
  3038.  
  3039.  
  3040.                                       - 53 -
  3041.  
  3042.  
  3043.  
  3044.          ┌────────────────────────────────────────────────────────────────┐
  3045.          │ Function 36: FILENAME SEARCH                                   │
  3046.          └────────────────────────────────────────────────────────────────┘
  3047.  
  3048.          DATA: <area selection>
  3049.  
  3050.  
  3051.          Looks for a filename in the file listings (wildcards allowed).
  3052.          The filename will be looked for in the areas specified in
  3053.          <area selection>. Refer to function 32 (Download) for more
  3054.          information.
  3055.  
  3056.  
  3057.  
  3058.          ┌────────────────────────────────────────────────────────────────┐
  3059.          │ Function 37: SHOW NEW FILES                                    │
  3060.          └────────────────────────────────────────────────────────────────┘
  3061.  
  3062.          DATA: <area selection>
  3063.  
  3064.  
  3065.          Shows a list of files more recent than a date specified by the
  3066.          user. If the user does not specify a date, then that date will be
  3067.          the last time this user logged in. The files will be looked for
  3068.          in the areas specified in <area selection>. Please refer to
  3069.          function 32 (Download) for more information.
  3070.  
  3071.  
  3072.  
  3073.          ┌────────────────────────────────────────────────────────────────┐
  3074.          │ Function 38: VIEW A FILE                                       │
  3075.          └────────────────────────────────────────────────────────────────┘
  3076.  
  3077.          DATA: <directory>
  3078.  
  3079.  
  3080.          This functions asks for a filename, and then looks for (and shows)
  3081.          the file stored in <directory>.
  3082.  
  3083.  
  3084.  
  3085.          ┌────────────────────────────────────────────────────────────────┐
  3086.          │ Function 39: DISPLAY NAMED FILE                                │
  3087.          └────────────────────────────────────────────────────────────────┘
  3088.  
  3089.          DATA: <full filename>
  3090.  
  3091.  
  3092.          Displays a file to the user. The data field <full filename> must
  3093.          contain path, name and extension.
  3094.  
  3095.  
  3096.                                       - 54 -
  3097.  
  3098.  
  3099.  
  3100.          ┌────────────────────────────────────────────────────────────────┐
  3101.          │ Function 40: DISPLAY ANS/ASC FILE WITH MENU HOTKEYS            │
  3102.          └────────────────────────────────────────────────────────────────┘
  3103.  
  3104.          DATA: <filename without extension>
  3105.  
  3106.  
  3107.          This function is the same as function 5, but can only be used in
  3108.          'autoexec-menus', because it shows an ANS/ASC-file AND checks for
  3109.          menu hotkeys at the same time. Please refer to the section about
  3110.          menus for more information about the autoexec-concept.
  3111.  
  3112.  
  3113.  
  3114.          ┌────────────────────────────────────────────────────────────────┐
  3115.          │ Function 41: TOGGLE FULLSCREEN EDITOR                          │
  3116.          └────────────────────────────────────────────────────────────────┘
  3117.  
  3118.          DATA: -
  3119.  
  3120.  
  3121.          Lets the user decide whether he will use ProBoard's line editor or
  3122.          the (external) fullscreen editor.
  3123.  
  3124.  
  3125.  
  3126.          ┌────────────────────────────────────────────────────────────────┐
  3127.          │ Function 42: TOGGLE COMMAND STACKING                           │
  3128.          └────────────────────────────────────────────────────────────────┘
  3129.  
  3130.          DATA: -
  3131.  
  3132.  
  3133.          Lets the user decide whether he will work with hotkeys or with
  3134.          combinations of hotkeys and command stacking (à la Opus). The
  3135.          command stack execution is initiated by pressing <Enter>.
  3136.          A ';' in the command stack will be replaced by <Enter>.
  3137.  
  3138.          Eg.  M1WSysop;Subject;Y
  3139.  
  3140.          This would write a private message in message area 1 to the sysop,
  3141.          with subject "Subject".
  3142.  
  3143.  
  3144.  
  3145.  
  3146.  
  3147.  
  3148.  
  3149.  
  3150.  
  3151.  
  3152.                                       - 55 -
  3153.  
  3154.  
  3155.  
  3156.          ┌────────────────────────────────────────────────────────────────┐
  3157.          │ Function 43: CLEAR MARKED MESSAGES                             │
  3158.          └────────────────────────────────────────────────────────────────┘
  3159.  
  3160.          DATA: -
  3161.  
  3162.  
  3163.          Clears all marked messages.
  3164.  
  3165.  
  3166.  
  3167.          ┌────────────────────────────────────────────────────────────────┐
  3168.          │ Function 44: GLOBAL COMBINED BOARDS SELECTION                  │
  3169.          └────────────────────────────────────────────────────────────────┘
  3170.  
  3171.          DATA: -
  3172.  
  3173.  
  3174.          Allows the user to select or unselect all areas in his combined
  3175.          boards selection.
  3176.  
  3177.  
  3178.  
  3179.          ┌────────────────────────────────────────────────────────────────┐
  3180.          │ Function 45: DISPLAY TEXTFILE & WAIT                           │
  3181.          └────────────────────────────────────────────────────────────────┘
  3182.  
  3183.          DATA: <full filename>
  3184.  
  3185.  
  3186.          Displays a textfile to the user, then waits for the user to press
  3187.          <Enter>. The filename requires full path, name and extension.
  3188.  
  3189.  
  3190.  
  3191.          ┌────────────────────────────────────────────────────────────────┐
  3192.          │ Function 46: CHANGE USER LEVEL AND/OR FLAGS                    │
  3193.          └────────────────────────────────────────────────────────────────┘
  3194.  
  3195.          DATA: [level] [flag +/-] [flag +/-] ...
  3196.  
  3197.  
  3198.          Changes a user's level and/or flags. [level] can occur only once
  3199.          in the parameter array, flags can be toggled on/off by specifying
  3200.          the flag, followed by +/-.
  3201.  
  3202.          Data example:   10 A+ C-
  3203.  
  3204.          This would set the user's level to 10, set flag A and clear flag C.
  3205.  
  3206.  
  3207.  
  3208.                                       - 56 -
  3209.  
  3210.  
  3211.  
  3212.          ┌────────────────────────────────────────────────────────────────┐
  3213.          │ Function 47: MAKE A LOG ENTRY                                  │
  3214.          └────────────────────────────────────────────────────────────────┘
  3215.  
  3216.          DATA: <log entry>
  3217.  
  3218.  
  3219.          Writes <log entry> to PROBOARD.LOG, thus allowing the sysop to
  3220.          customize his log.
  3221.  
  3222.  
  3223.  
  3224.          ┌────────────────────────────────────────────────────────────────┐
  3225.          │ Function 48: SHOW HITPARADE                                    │
  3226.          └────────────────────────────────────────────────────────────────┘
  3227.  
  3228.          DATA: <Mn>/<Kn>/<Tn>/<Un>/<Fn>/<Cn>/<On>
  3229.  
  3230.  
  3231.          This functions returns an overview of the most active users in
  3232.          several fields.
  3233.  
  3234.          The 'n' with the parameters stands for the number of users to be
  3235.          displayed in the hitparade. (unregistered versions default to 5)
  3236.  
  3237.             M   Best message-writers
  3238.  
  3239.             K   Best downloaders (Kb)
  3240.  
  3241.             T   Best downloaders (# downloads)
  3242.  
  3243.             U   Best uploaders (Kb)
  3244.  
  3245.             F   Best uploaders (# uploads)
  3246.  
  3247.             C   Best callers (# times called)
  3248.  
  3249.             O   Total time online
  3250.  
  3251.          Data example:   U15
  3252.  
  3253.  
  3254.  
  3255.  
  3256.  
  3257.  
  3258.  
  3259.  
  3260.  
  3261.  
  3262.  
  3263.  
  3264.                                       - 57 -
  3265.  
  3266.  
  3267.  
  3268.          ┌────────────────────────────────────────────────────────────────┐
  3269.          │ Function 49: SELECT MESSAGE AREA                               │
  3270.          └────────────────────────────────────────────────────────────────┘
  3271.  
  3272.          DATA: -
  3273.  
  3274.  
  3275.          Lets the user select a new message area. This function is to be
  3276.          used in cooperation with other message-related functions.
  3277.  
  3278.  
  3279.  
  3280.          ┌────────────────────────────────────────────────────────────────┐
  3281.          │ Function 50: SHOW USERS ONLINE                                 │
  3282.          └────────────────────────────────────────────────────────────────┘
  3283.  
  3284.          DATA: -
  3285.  
  3286.  
  3287.          Displays who is online on the other nodes. Of course, you
  3288.          understand that this function is useful only on multi-user systems.
  3289.          To protect the sysop's health, it is possible not to show the
  3290.          sysop's name here (Refer to the ProCFG section).
  3291.  
  3292.  
  3293.  
  3294.          ┌────────────────────────────────────────────────────────────────┐
  3295.          │ Function 51: LIST LAST CALLERS                                 │
  3296.          └────────────────────────────────────────────────────────────────┘
  3297.  
  3298.          DATA: <number of users to be displayed>
  3299.  
  3300.  
  3301.          Gives an overview of the users that have most recently logged in
  3302.          (for ALL the nodes). In the non-registered version, the number
  3303.          of users shown is forced to 5.
  3304.  
  3305.  
  3306.  
  3307.          ┌────────────────────────────────────────────────────────────────┐
  3308.          │ Function 52: REMOTE USER EDITOR                                │
  3309.          └────────────────────────────────────────────────────────────────┘
  3310.  
  3311.          DATA: -
  3312.  
  3313.  
  3314.          Allows you to adjust a user's level (or even delete him), without
  3315.          you having to be at the computer (VERY handy for co-sysops!).
  3316.  
  3317.  
  3318.  
  3319.  
  3320.                                       - 58 -
  3321.  
  3322.  
  3323.  
  3324.          ┌────────────────────────────────────────────────────────────────┐
  3325.          │ Function 53: MULTILINE CHAT (INTERNODE CHAT)                   │
  3326.          └────────────────────────────────────────────────────────────────┘
  3327.  
  3328.          DATA: [directory]
  3329.  
  3330.  
  3331.          This is certainly the nicest function in ProBoard! This function
  3332.          allows two users on different nodes to chat with each other
  3333.          IN REAL TIME!!! You will actually see the other user type
  3334.          (mistakes?), as if you were in chat-mode with the sysop. This is
  3335.          UNlike other systems, where entire LINES are sent to the other
  3336.          node.
  3337.  
  3338.          User A on node X will have to specify the node he wants to chat
  3339.          with, whereafter user B on node Y will be prompted if he wants
  3340.          to chat.
  3341.  
  3342.          If you specify a directory, ProBoard will use this directory to
  3343.          read/write chat data. Useful if you have a RAM-disk. If no
  3344.          directory is given, the system-directory will be used.
  3345.  
  3346.          It is VERY (!VERY!) important that your system supports full file
  3347.          & record locking to use this option. When you are not running a
  3348.          LAN, you MUST install SHARE.EXE! ProBoard will definitely lock up
  3349.          when SHARE.EXE is not installed on a stand-alone system.
  3350.  
  3351.  
  3352.  
  3353.          ┌────────────────────────────────────────────────────────────────┐
  3354.          │ Function 54: SELECT FILE AREA                                  │
  3355.          └────────────────────────────────────────────────────────────────┘
  3356.  
  3357.          DATA: <area selection>
  3358.  
  3359.  
  3360.          Lets the user select a new file area. This function is to be used
  3361.          in cooperation with other file-related functions. Refer to
  3362.          functions 1 and 32 for more information.
  3363.  
  3364.  
  3365.  
  3366.  
  3367.  
  3368.  
  3369.  
  3370.  
  3371.  
  3372.  
  3373.  
  3374.  
  3375.  
  3376.                                       - 59 -
  3377.  
  3378.  
  3379.  
  3380.          ┌────────────────────────────────────────────────────────────────┐
  3381.          │ Function 55: SHOW .GIF FILE INFO                               │
  3382.          └────────────────────────────────────────────────────────────────┘
  3383.  
  3384.          DATA: <area selection>
  3385.  
  3386.  
  3387.          Prompts the user for a .GIF-filename (wildcards allowed) and
  3388.          displays resolution and number of colors for the file(s). The
  3389.          files will be looked for in <area selection>. Refer to function 32
  3390.          (Download) for more information.
  3391.  
  3392.  
  3393.  
  3394.          ┌────────────────────────────────────────────────────────────────┐
  3395.          │ Function 56: TOGGLE IBM CHARACTERS                             │
  3396.          └────────────────────────────────────────────────────────────────┘
  3397.  
  3398.          DATA: -
  3399.  
  3400.  
  3401.          Allows the user to disable/enable extended IBM characters. When
  3402.          disabled, all IBM-specific characters are converted to standard
  3403.          ASCII characters ("+-|")
  3404.  
  3405.  
  3406.  
  3407.          ┌────────────────────────────────────────────────────────────────┐
  3408.          │ Function 57: CHANGE PHONE NUMBER                               │
  3409.          └────────────────────────────────────────────────────────────────┘
  3410.  
  3411.          DATA: -
  3412.  
  3413.  
  3414.          Allows the user to change his phone number stored in his user
  3415.          record.
  3416.  
  3417.  
  3418.  
  3419.          ┌────────────────────────────────────────────────────────────────┐
  3420.          │ Function 58: CHANGE DATA/FAX PHONE NUMBER                      │
  3421.          └────────────────────────────────────────────────────────────────┘
  3422.  
  3423.          DATA: -
  3424.  
  3425.  
  3426.          Allows the user to change his data/fax phone number stored in his
  3427.          user record.
  3428.  
  3429.  
  3430.  
  3431.  
  3432.                                       - 60 -
  3433.  
  3434.  
  3435.  
  3436.          ┌────────────────────────────────────────────────────────────────┐
  3437.          │ Function 59: CHANGE USER ALIAS                                 │
  3438.          └────────────────────────────────────────────────────────────────┘
  3439.  
  3440.          DATA: -
  3441.  
  3442.  
  3443.          Allows the user to change his alias. It is not allowed to use an
  3444.          alias that is being used by another user.
  3445.  
  3446.  
  3447.  
  3448.          ┌────────────────────────────────────────────────────────────────┐
  3449.          │ Function 60: EXECUTE PROBOARD EXECUTABLE (PEX FILE)            │
  3450.          └────────────────────────────────────────────────────────────────┘
  3451.  
  3452.          DATA: <program> [data]
  3453.  
  3454.  
  3455.          Loads & executes a ProBoard executable. The PEX file has to reside
  3456.          in the PEX-directory (Specified in ProCFG).
  3457.  
  3458.  
  3459.  
  3460.          ┌────────────────────────────────────────────────────────────────┐
  3461.          │ Function 61: BULLETIN MENU                                     │
  3462.          └────────────────────────────────────────────────────────────────┘
  3463.  
  3464.          DATA: <filename> [prompt]
  3465.  
  3466.  
  3467.          Displays <filename>.ANS/ASC (like function 5), and prompts the
  3468.          user for a file suffix. This suffix is appended to <filename>, and
  3469.          the file with the resulting filename is displayed. Obviously,
  3470.          <filename> should not be longer than 7 characters.
  3471.          The optional [prompt] parameters defines a prompt to be shown to
  3472.          the user. For example: Enter a bulletin.
  3473.  
  3474.          Data example: BULLET Enter a bulletin:
  3475.  
  3476.  
  3477.  
  3478.  
  3479.  
  3480.  
  3481.  
  3482.  
  3483.  
  3484.  
  3485.  
  3486.  
  3487.  
  3488.                                       - 61 -
  3489.  
  3490.  
  3491.  
  3492.                              ┌────────────┐
  3493.                              │ VII. USERS │
  3494.                              └────────────┘
  3495.  
  3496.  
  3497.          The file USERS.PRO contains all the data about the users, such as
  3498.          level, number of times called, combined boards access, messages
  3499.          last read, etc. ...
  3500.  
  3501.  
  3502.          User Editor
  3503.          ──────────────────────────────────────────────────────────────────
  3504.  
  3505.          Working with the user editor is fairly easy. You can use the user
  3506.          editor to search for, look at, and change a user's data. You
  3507.          can edit users with the ProCFG utility. The editor activated by
  3508.          Alt-E in ProBoard is identical to the one in ProCFG.
  3509.  
  3510.          You can use the following keys in the user editor:
  3511.  
  3512.              <PgUp>          Go to the previous user-record.
  3513.              <PgDn>          Go to the next user-record.
  3514.  
  3515.              <Ctrl-PgUp>     Go to the first user-record.
  3516.              <Ctrl-PgDn>     Go to the last user-record.
  3517.  
  3518.              <Alt-S>         Search for a user-record. You may specify
  3519.                              whole or part of a user's name.
  3520.  
  3521.              <Alt-N>         Search for the next user-record complying to
  3522.                              the name specified with <Alt-S>.
  3523.  
  3524.              <Alt-D>         Toggle the 'deleted' flag of the current user.
  3525.  
  3526.              <Alt-A>         Add a new user
  3527.  
  3528.              <F10>           Opens a window containing statistical
  3529.                              parameters about the current user.
  3530.  
  3531.  
  3532.          When you have found the user-record you were looking for, move
  3533.          between the fields by using the arrow keys. To edit a field, just
  3534.          move the selector to that field and begin editing straight away
  3535.          (Insert is ALWAYS on).
  3536.  
  3537.  
  3538.          A user-record has the following fields:
  3539.  
  3540.              User Name              User's name.
  3541.  
  3542.  
  3543.  
  3544.                                       - 62 -
  3545.  
  3546.  
  3547.  
  3548.              Password               User's password.
  3549.  
  3550.              City                   City the user lives in.
  3551.  
  3552.              Country                Country (or state) the user lives in.
  3553.  
  3554.              Voice Phone #          User's voice phone number (not
  3555.                                     restricted to a certain layout).
  3556.                                     Europeans hate the restrictions in
  3557.                                     other BBS packages :-(
  3558.  
  3559.              Data/Fax Phone #       User's data or fax number (if any).
  3560.  
  3561.              Level                  User's level (ranging from 0 to 32000).
  3562.                                     A 0 means that the user has NO access
  3563.                                     to the BBS.
  3564.  
  3565.              Flags                  User's flags. Edit them by pressing
  3566.                                     <Enter>, and then pressing any
  3567.                                     character ranging from A to Z to toggle
  3568.                                     that flag.
  3569.  
  3570.              Loglevel               The way in which the user will be
  3571.                                     logged in the logfile (more about this
  3572.                                     later).
  3573.  
  3574.              Alias                  Each user can have a unique 'alias'
  3575.                                     (nickname). In selected message areas,
  3576.                                     the user can use this alias to write
  3577.                                     messages or (if enabled) can login
  3578.                                     using this alias.
  3579.  
  3580.              Netmail credit         Number of credits the user has left to
  3581.                                     write Netmail messages.
  3582.  
  3583.              Expiration Date        When this date is specified (non-zero),
  3584.              Expiration level       the user's level will drop to the
  3585.                                     given level when the expiration date
  3586.                                     is reached.
  3587.  
  3588.              Birth Date             The date of birth of this user.
  3589.  
  3590.              First Date             The date of the user's first call to
  3591.                                     the system.
  3592.  
  3593.              Deleted                If a user is set to deleted, his record
  3594.                                     will be removed from USERS.PRO upon the
  3595.                                     next user pack.
  3596.  
  3597.              ANSI                   Should ANSI codes be sent to the user?
  3598.  
  3599.  
  3600.                                       - 63 -
  3601.  
  3602.  
  3603.  
  3604.              More?                  Pause after each screen?
  3605.  
  3606.              Clearscreen            Send clearscreen codes to the user?
  3607.  
  3608.              Stacking               Use command-stacking?
  3609.  
  3610.              No-IBM                 Determines whether all the IBM-specific
  3611.                                     characters should be filtered out and
  3612.                                     converted to standard ASCII.
  3613.  
  3614.              Fullscreen Editor      Use the fullscreen message editor or
  3615.                                     the internal line editor?
  3616.  
  3617.              NoKill                 The user's record CAN NEVER be removed
  3618.                                     from the userfile.
  3619.  
  3620.              Ignore Download        Does the user have UNLIMITED download
  3621.                                     access?
  3622.  
  3623.              Attention              ProBoard will beep or play a song when
  3624.                                     this user tries to log in.
  3625.  
  3626.              In Tops                If enabled, this user will be shown in
  3627.                                     'tops' lists (function 48)
  3628.  
  3629.  
  3630.  
  3631.  
  3632.          Loglevels
  3633.          ──────────────────────────────────────────────────────────────────
  3634.  
  3635.          Each user has a certain loglevel, to determine how he/she will be
  3636.          followed in ProBoard's logfile.
  3637.          This can be useful if you suspect a user of loggin in using 2
  3638.          different names. If you give those users a higher loglevel, you
  3639.          can track their behaviour.
  3640.  
  3641.          The following levels are possible:
  3642.  
  3643.              Friend          * NOTHING BUT login, logoff and errors
  3644.                                will be logged.
  3645.  
  3646.              Normal          * Login
  3647.                              * Logoff
  3648.                              * Errors
  3649.                              * Writing sysop messages
  3650.                              * Sysop paging
  3651.                              * Downloads
  3652.                              * Uploads
  3653.                              * Questionnaires
  3654.  
  3655.  
  3656.                                       - 64 -
  3657.  
  3658.  
  3659.  
  3660.              Suspicious      * Everything from 'Normal'
  3661.                              * Reading messages
  3662.                              * Hitparades
  3663.                              * Last callers
  3664.                              * Graphics
  3665.  
  3666.              Dangerous       * Everything from 'Suspicious'
  3667.                              * ALL the movements between menus (this can
  3668.                                make the logfile HUGE)
  3669.  
  3670.  
  3671.  
  3672.  
  3673.  
  3674.  
  3675.  
  3676.  
  3677.  
  3678.  
  3679.  
  3680.  
  3681.  
  3682.  
  3683.  
  3684.  
  3685.  
  3686.  
  3687.  
  3688.  
  3689.  
  3690.  
  3691.  
  3692.  
  3693.  
  3694.  
  3695.  
  3696.  
  3697.  
  3698.  
  3699.  
  3700.  
  3701.  
  3702.  
  3703.  
  3704.  
  3705.  
  3706.  
  3707.  
  3708.  
  3709.  
  3710.  
  3711.  
  3712.                                       - 65 -
  3713.  
  3714.  
  3715.  
  3716.                          ┌──────────────────────────┐
  3717.                          │ VIII. ECHOMAIL & NETMAIL │
  3718.                          └──────────────────────────┘
  3719.  
  3720.  
  3721.          ProBoard fully supports Echomail and Netmail, according to the
  3722.          FTSC (FidoNet Technical Standards Committee) specifications.
  3723.  
  3724.  
  3725.          Echomail
  3726.          ──────────────────────────────────────────────────────────────────
  3727.  
  3728.          When a user enters a message in a message area configured as an
  3729.          Echomail area, an origin line will be added to that message. This
  3730.          origin line is obtained from the message area's configuration. If
  3731.          there is no origin line specified for this message area, the
  3732.          default origin line will be used (refer to the section about
  3733.          'System parameters').
  3734.  
  3735.          To import/export Echomail, you need an Echomail processor. No
  3736.          such program is included, but as ProBoard uses the QuickBBS
  3737.          message-base structure, a large number of Echomail processors
  3738.          are available.
  3739.  
  3740.          Great echomail-processors compatible with ProBoard are:
  3741.  
  3742.             - QEcho
  3743.             - ZmailQ
  3744.             - TosScan
  3745.  
  3746.  
  3747.  
  3748.          Netmail
  3749.          ──────────────────────────────────────────────────────────────────
  3750.  
  3751.          A Netmail message (in short: Netmail) is a message that has a
  3752.          fixed destination within the network. This destination is
  3753.          defined by a node-number of the form "Zone:Net/Node.Point".
  3754.          ProBoard will first find out whether this address exists, and
  3755.          will then (if it exists) tell you the name of the node where
  3756.          the Netmail is to be sent to.
  3757.  
  3758.          When entering a node number in ProBoard, it is possible to look
  3759.          up the nodes you want by entering a '?'.
  3760.  
  3761.          eg:   ?        Shows a list of all zones.
  3762.                2:?      Shows a list of all nets and regions in zone 2.
  3763.                2:292/?  Shows a list of all nodes in net 2:292/
  3764.  
  3765.  
  3766.  
  3767.  
  3768.                                       - 66 -
  3769.  
  3770.  
  3771.  
  3772.          ProBoard needs a nodelist to use Netmail. This nodelist is
  3773.          usually available on every node in the network. ProBoard
  3774.          generates an index file for its own use (NODE_IDX.PRO) by running
  3775.          PBUTIL NC.
  3776.  
  3777.          For more information about PBUTIL's NC-option, please refer to the
  3778.          section on PBUTIL.
  3779.  
  3780.          To import and export Netmail, you need an external utility like
  3781.          MAILSCAN ,MBUTIL or ZmailQ.
  3782.  
  3783.  
  3784.  
  3785.  
  3786.  
  3787.  
  3788.  
  3789.  
  3790.  
  3791.  
  3792.  
  3793.  
  3794.  
  3795.  
  3796.  
  3797.  
  3798.  
  3799.  
  3800.  
  3801.  
  3802.  
  3803.  
  3804.  
  3805.  
  3806.  
  3807.  
  3808.  
  3809.  
  3810.  
  3811.  
  3812.  
  3813.  
  3814.  
  3815.  
  3816.  
  3817.  
  3818.  
  3819.  
  3820.  
  3821.  
  3822.  
  3823.  
  3824.                                       - 67 -
  3825.  
  3826.  
  3827.  
  3828.                                 ┌────────────┐
  3829.                                 │ IX. PBUTIL │
  3830.                                 └────────────┘
  3831.  
  3832.  
  3833.          PBUtil is an extra utility that comes with the ProBoard package.
  3834.          It takes care of all the maintenance a ProBoard system needs.
  3835.  
  3836.          PBUtil is called with a parameter specifying the operation to be
  3837.          executed:
  3838.  
  3839.  
  3840.          PBUTIL <operation> [option]
  3841.  
  3842.  
  3843.          Operations:     MP    Message Packer
  3844.                          MI    Message Indexer
  3845.                          MK    Message Killer
  3846.                          MR    Messagebase Repair
  3847.                          ML    Message Linker
  3848.                          UP    Userfile Packer
  3849.                          UK    User Killer (well ;-)
  3850.                          UI    Userfile Indexer
  3851.                          US    Userfile Sorter
  3852.                          FC    File Counters
  3853.                          NC    Nodelist Compiler
  3854.                          LR    LASTREAD.BBS conversion
  3855.                          MU    .MUS file player
  3856.  
  3857.          PBUtil can be run from any directory!
  3858.  
  3859.  
  3860.  
  3861.  
  3862.  
  3863.  
  3864.  
  3865.  
  3866.  
  3867.  
  3868.  
  3869.  
  3870.  
  3871.  
  3872.  
  3873.  
  3874.  
  3875.  
  3876.  
  3877.  
  3878.  
  3879.  
  3880.                                       - 68 -
  3881.  
  3882.  
  3883.  
  3884.          [MP] Message Packer
  3885.          ──────────────────────────────────────────────────────────────────
  3886.  
  3887.          Packs the message base. This means that the deleted messages are
  3888.          effectively removed from the message base.
  3889.  
  3890.          Specifying option -R will instruct the message packer to renumber
  3891.          the message base. Renumbering the message base is done
  3892.          automatically when the highest message number exceeds 25000.
  3893.  
  3894.          Option -C cleans "garbage" from the messages, so compression
  3895.          utilities will do a better job when compressing the messagebase.
  3896.  
  3897.          Option -F forces the pack to be executed, even if there are no
  3898.          deleted messages.
  3899.  
  3900.          Lastread-pointers in the userfile will be adjusted when
  3901.          renumbering.
  3902.  
  3903.          Do NOT pack the messagebase when a user is online!!
  3904.  
  3905.  
  3906.  
  3907.          [MI] Message Indexer
  3908.          ──────────────────────────────────────────────────────────────────
  3909.  
  3910.          Recreates the messagebase index files. (MSGIDX.BBS,MSGTOIDX.BBS
  3911.          and MSGINFO.BBS).
  3912.  
  3913.  
  3914.  
  3915.          [MK] Message Killer
  3916.          ──────────────────────────────────────────────────────────────────
  3917.  
  3918.          Deletes all messages specified in the message-area configuration.
  3919.          Refer to the message-area configuration chapter for more
  3920.          information.
  3921.  
  3922.  
  3923.  
  3924.          [MR] Messagebase Repair
  3925.          ──────────────────────────────────────────────────────────────────
  3926.  
  3927.          Scans the message-base for invalid/damaged messages, and deletes
  3928.          them.
  3929.  
  3930.  
  3931.  
  3932.  
  3933.  
  3934.  
  3935.  
  3936.                                       - 69 -
  3937.  
  3938.  
  3939.  
  3940.          [ML] Message Linker
  3941.          ──────────────────────────────────────────────────────────────────
  3942.  
  3943.          Completely rebuilds reply-chains in all areas. This operation has
  3944.          to be performed when echomail is imported into the messagebase.
  3945.  
  3946.  
  3947.  
  3948.          [UP] Userfile Packer
  3949.          ──────────────────────────────────────────────────────────────────
  3950.  
  3951.          Removes all deleted users from USERS.PRO, except the users with
  3952.          the NoKill flag set. Messed up user-records are also removed.
  3953.  
  3954.          Specifying option -R instructs the user packer to reset all
  3955.          Lastread-pointers to zero.
  3956.  
  3957.          Do NOT pack the userfile when a user is online!!
  3958.  
  3959.  
  3960.  
  3961.          [UI] Userfile Indexer
  3962.          ──────────────────────────────────────────────────────────────────
  3963.  
  3964.          Creates an indexfile for the userfile. When ProBoard finds an
  3965.          indexfile, it will search in this file. This will reduce the
  3966.          time needed to locate a user at login.
  3967.  
  3968.  
  3969.  
  3970.          [US] Userfile Sorter
  3971.          ──────────────────────────────────────────────────────────────────
  3972.  
  3973.          Sorts USERS.PRO by level and name.
  3974.  
  3975.  
  3976.  
  3977.  
  3978.  
  3979.  
  3980.  
  3981.  
  3982.  
  3983.  
  3984.  
  3985.  
  3986.  
  3987.  
  3988.  
  3989.  
  3990.  
  3991.  
  3992.                                       - 70 -
  3993.  
  3994.  
  3995.  
  3996.          [UK] User Killer
  3997.          ──────────────────────────────────────────────────────────────────
  3998.  
  3999.          Deletes certain users from USERS.PRO. The criteria are: not called
  4000.          since a certain date, less than a certain number of times called
  4001.          or a combination of these two.
  4002.  
  4003.          Parameters to use:
  4004.  
  4005.              -D<date>      Removes all users that haven't called since
  4006.                            <date>. The format of <date> is DD-MM-YY or
  4007.                            MM-DD-YY (depending on the date-setup in ProCFG)
  4008.  
  4009.              -C<calls>     Removes all users that have called less than
  4010.                            <calls> times.
  4011.  
  4012.          Combining these two parameters, will remove all users that have
  4013.          called less than <calls> times BEFORE <date>. This option comes
  4014.          in handy to remove all users that have called just once, but
  4015.          without removing your new users!
  4016.  
  4017.          Examples:
  4018.  
  4019.             PBUTIL UK -C3             Removes all users that have called but
  4020.                                       1 or 2 times.
  4021.  
  4022.             PBUTIL UK -D01-01-90      Removes all users that haven't called
  4023.                                       since Jan. 1st 1990.
  4024.  
  4025.             PBUTIL UK -C2 -D01-02-90  Removes all users that have called
  4026.                                       less than 2 times, but keeps the users
  4027.                                       that have called after 01-02-90.
  4028.  
  4029.  
  4030.  
  4031.  
  4032.  
  4033.  
  4034.  
  4035.  
  4036.  
  4037.  
  4038.  
  4039.  
  4040.  
  4041.  
  4042.  
  4043.  
  4044.  
  4045.  
  4046.  
  4047.  
  4048.                                       - 71 -
  4049.  
  4050.  
  4051.  
  4052.          [FC] File Counters
  4053.          ──────────────────────────────────────────────────────────────────
  4054.  
  4055.          After each download, ProBoard adds a line to the file DOWNLOAD.LOG.
  4056.          This file's only purpose is to be used by the FC module of PBUtil.
  4057.          FC reads the file DOWNLOAD.LOG and updates file counters in every
  4058.          file listing, to keep up with the number of times every file
  4059.          has been downloaded.
  4060.  
  4061.          Specifying option -N<xx> instructs PBUtil to create a list of the
  4062.          top-xx downloaded files. This list is named TOPFILES.ASC/ANS and
  4063.          is stored in the textfiles-subdirectory. The number of files to be
  4064.          written in this list is <xx>, (eg. -N15).
  4065.  
  4066.          Specifying option -F instructs PBUtil to ALWAYS create
  4067.          TOPFILES.ASC/ANS, even if DOWNLOAD.LOG is empty or doesn't exist.
  4068.  
  4069.          Option -R rewrites all file-listings with the appropriate file-
  4070.          count added to each file. This is useful when you added some
  4071.          files.
  4072.  
  4073.          The file counters will be placed before the description of the
  4074.          files.
  4075.  
  4076.          Eg. PB_100.ZIP  [89]  Superb new BBS program from Belgium !!!!
  4077.                          ^^^^
  4078.                      File Counter
  4079.  
  4080.  
  4081.  
  4082.  
  4083.          [NC] Nodelist Compiler
  4084.          ──────────────────────────────────────────────────────────────────
  4085.  
  4086.          Reads a FidoNet-compatible nodelist and creates a ProBoard index-
  4087.          file (NODE_IDX.PRO) in the system directory. This file will be
  4088.          less than 10K in size, but your original nodelist has to stay in
  4089.          the nodelist directory.
  4090.  
  4091.  
  4092.  
  4093.  
  4094.  
  4095.  
  4096.  
  4097.  
  4098.  
  4099.  
  4100.  
  4101.  
  4102.  
  4103.  
  4104.                                       - 72 -
  4105.  
  4106.  
  4107.  
  4108.          The compiler will look for the latest standard nodelist
  4109.          (NODELIST.xxx) in the nodelist directory.
  4110.  
  4111.          Specifying extra files as parameters instructs the nodelist
  4112.          compiler to compile extra nodelists. Several extra nodelists can
  4113.          be given as parameters.
  4114.  
  4115.            Eg. PBUTIL NC MYLIST.LST PVT.LST
  4116.  
  4117.          This would compile the latest NODELIST.xxx, MYLIST.LST and PVT.LST
  4118.          in the standard nodelist directory.
  4119.  
  4120.          To determine the costs of sending Netmail, a textfile will be read
  4121.          that you will have to create. This textfile is called COST.PRO and
  4122.          should be in ProBoard's system directory. The lines in this file
  4123.          have the following format:
  4124.  
  4125.              <Command> <Param1> [Param2]
  4126.  
  4127.  
  4128.          Commands:
  4129.  
  4130.          MYZONE <zone>                 All commands after this command act
  4131.                                        on zone <zone>. You need at least
  4132.                                        1 MYZONE command. If not, ProBoard
  4133.                                        will assume you are in zone 2. This
  4134.                                        is used to specify your own zone.
  4135.  
  4136.          DEFAULT <cost>                Defines the default Netmail cost.
  4137.  
  4138.          ZONE <zone> <cost>            Defines the Netmail cost for zone
  4139.                                        <zone>.
  4140.  
  4141.          REGION <region> <cost>        Defines the Netmail cost for region
  4142.                                        <region> within your own zone.
  4143.  
  4144.          NET <net> <cost>              Defines the Netmail cost for net
  4145.                                        <net> within your own zone.
  4146.  
  4147.  
  4148.          A simple example for a node in Belgium, where the BBS is part
  4149.          of only ONE network.
  4150.  
  4151.            MYZONE   2         I'm in zone 2
  4152.            DEFAULT   100      Default = 100 credits
  4153.            ZONE     3 50      Zone 3 = 50 credits (Australia)
  4154.            ZONE     1 40      Zone 1 = 40 credits (North-America)
  4155.            REGION  28 10      Region 28 = 10 credits (Netherlands)
  4156.            REGION  29  0      Region 29 = FREE (Belgium)
  4157.            NET    512  5      Net 512 = 5 (HCC Netherlands)
  4158.  
  4159.  
  4160.                                       - 73 -
  4161.  
  4162.  
  4163.  
  4164.          We give another example for a node which is part of 2 networks,
  4165.          so this node has nodenumbers 2:292/1900 and 89:120/40
  4166.  
  4167.            DEFAULT    100     Default = 100 credits
  4168.            ZONE     1  50     Zone 1  =  50 credits
  4169.            ZONE     2  20     Zone 2  =  20 credits
  4170.            ZONE     3  70     Zone 4  =  70 credits
  4171.            ZONE    89  10     My private network = 10 credits
  4172.  
  4173.            MYZONE   2         Following definitions are for zone 2
  4174.            REGION  29   1     Region 29 in zone 2  = 1 credit
  4175.            NET    292   0     Net 292   in zone 2  = 0 credits
  4176.            NET    512   5     Net 512   in zone 2  = 5 credits
  4177.  
  4178.            MYZONE  89         Following definitions are for zone 89
  4179.            REGION  12  2      Region 12 in zone 89 = 2 credits
  4180.            NET    120  0      Net 120   in zone 89 = 0 credits
  4181.  
  4182.  
  4183.  
  4184.  
  4185.          [LR] LASTREAD.BBS Conversion
  4186.          ──────────────────────────────────────────────────────────────────
  4187.  
  4188.          This extracts the LASTREAD.BBS file from the ProBoard userfile, or
  4189.          stores a LASTREAD.BBS file in the userfile.
  4190.          The LASTREAD.BBS will be read/created in the CURRENT directory.
  4191.  
  4192.          Two options can be used:
  4193.  
  4194.             -X (Extract)     Extracts the lastread-pointers from the user-
  4195.                              file and creates a QuickBBS/RA-compatible
  4196.                              LASTREAD.BBS file. This is useful if you
  4197.                              are using a messagebase-utility which needs
  4198.                              this file.
  4199.  
  4200.             -S (Store)       Extracts the lastread-pointers from the file
  4201.                              LASTREAD.BBS file and stores them in the
  4202.                              ProBoard userfile. Make sure the order of
  4203.                              the records in the userfile matches the order
  4204.                              of the records in LASTREAD.BBS.
  4205.  
  4206.             -F (Forced)      This is the same as '-S', but forces the
  4207.                              LASTREAD.BBS file to be stored in USERS.PRO,
  4208.                              even if the number of records in both files
  4209.                              do not match.
  4210.  
  4211.  
  4212.  
  4213.  
  4214.  
  4215.  
  4216.                                       - 74 -
  4217.  
  4218.  
  4219.  
  4220.                              ┌──────────────┐
  4221.                              │ X. REFERENCE │
  4222.                              └──────────────┘
  4223.  
  4224.  
  4225.          Multi-user Operation
  4226.          ──────────────────────────────────────────────────────────────────
  4227.  
  4228.          ProBoard gives you the possibility to have more than one user use
  4229.          the userfile and the message base at the same time. ProBoard
  4230.          doesn't do any internal multi-tasking to make the program act as
  4231.          flexible as possible.
  4232.          This makes sure that you can set up a multi-line BBS via a network
  4233.          and multiple computers, or by running ProBoard under a
  4234.          multitasking system. ProBoard has some code built in to run it as
  4235.          efficiently as possible under DESQview. It is also compatible with
  4236.          the new multitasking version of DR-DOS 5.0.
  4237.  
  4238.          ProBoard can handle up to 255 nodes. Each node needs its own
  4239.          directory, because ProBoard supports the use of an external
  4240.          message editor. These editors were designed to be used on
  4241.          single-node systems. Each node MUST be started from its own
  4242.          private directory.
  4243.          No ProBoard-related files have to be placed in this directory
  4244.          (only the files needed for the external message editor).
  4245.  
  4246.  
  4247.          If you want to install 3 nodes in a network, you could create
  4248.          the following structure:
  4249.  
  4250.              P:\PB\MSG               Message base directory
  4251.              P:\PB\TXTFILES          Textfiles directory
  4252.              P:\PB\MENUS             Menus directory
  4253.              P:\PB\PEX               PEX files directory
  4254.  
  4255.              P:\PB\NODE1             Start-up directory for node 1
  4256.              P:\PB\NODE2             Start-up directory for node 2
  4257.              P:\PB\NODE3             Start-up directory for node 3
  4258.  
  4259.  
  4260.  
  4261.  
  4262.  
  4263.  
  4264.  
  4265.  
  4266.  
  4267.  
  4268.  
  4269.  
  4270.  
  4271.  
  4272.                                       - 75 -
  4273.  
  4274.  
  4275.  
  4276.          ProBoard should be started from P:\PB\NODE1 for node 1, from
  4277.          P:\PB\NODE2 for node 2, etc. These directories only require the
  4278.          files for the external editor. All the other files that ProBoard
  4279.          uses, should be stored in ProBoard's system directory.
  4280.  
  4281.          If you run ProBoard under a multitasker, the different nodes will
  4282.          run on different com-ports.
  4283.  
  4284.          ┌───────────┬────────────────────────────────────────────────────┐
  4285.          │ IMPORTANT │ If you are running ProBoard multi-line using a     │
  4286.          ├───────────┘ multitasker, the DOS program SHARE.EXE should be   │
  4287.          │             installed.                                         │
  4288.          └────────────────────────────────────────────────────────────────┘
  4289.  
  4290.  
  4291.  
  4292.          Sysop Keys
  4293.          ──────────────────────────────────────────────────────────────────
  4294.  
  4295.          While the user is on-line, the sysop can perform several actions,
  4296.          by using the sysop keys:
  4297.  
  4298.  
  4299.          Left/Right                    Lower/Raise the current user's level.
  4300.                                        Only the levels configured in PROCFG
  4301.                                        can be selected.
  4302.  
  4303.          Up/Down                       Raise/Lower the current user's time
  4304.                                        left. The time subtracted/added is
  4305.                                        not restricted to this session!
  4306.  
  4307.          Alt-C   [Chat]                Start a chat with the user. The chat
  4308.                                        may be ended by pressing <Esc>.
  4309.  
  4310.          Alt-J   [Jump]                Jump to DOS. If 'Swapping' was set to
  4311.                                        'Yes' in PROCFG, the ProBoard session
  4312.                                        will be swapped to disk or EMS, thus
  4313.                                        making all memory available to the
  4314.                                        DOS commands you want to execute.
  4315.                                        You can return from the shell by
  4316.                                        entering EXIT at the DOS prompt.
  4317.  
  4318.          Alt-H   [HangUp]              Hangs up the phone, throwing the
  4319.                                        user off-line immediately
  4320.                                        (very unfriendly)!
  4321.  
  4322.          Alt-L   [LockOut]             Hangs up the phone AND sets the
  4323.                                        user's level to 0, thus making sure
  4324.                                        he/she cannot log in any more
  4325.                                        (very very unfriendly)!
  4326.  
  4327.  
  4328.                                       - 76 -
  4329.  
  4330.  
  4331.  
  4332.          Alt-N   [NoChat]              Makes ProBoard shut up during this
  4333.                                        session.
  4334.                                        Comes in VERY handy when you see the
  4335.                                        user-that-ALWAYS-wants-to-chat is
  4336.                                        logging in.
  4337.  
  4338.          Alt-E   [Edit]                Allows you to edit the user
  4339.                                        online. The editor is similar to
  4340.                                        the editor in ProCFG.
  4341.                                        (registered version only)
  4342.  
  4343.          Alt-I   [Image]               Appends an image of the screen to
  4344.                                        the file IMAGE.TXT in the ProBoard
  4345.                                        system directory.
  4346.  
  4347.          Ins                           Shows some information about the
  4348.                                        user on-line (such as password,
  4349.                                        flags, downloads, etc.).
  4350.  
  4351.          F1                            Shows a help-screen with all the
  4352.                                        sysop keys available.
  4353.  
  4354.          F2                            Shows a help-screen with all the
  4355.                                        sysop macros available. (registered
  4356.                                        version only)
  4357.  
  4358.          PgUp/PgDn                     Shows additional information about
  4359.                                        the current user on the status line.
  4360.  
  4361.          Home                          Shows the normal status line after
  4362.                                        using PgUp/PgDn.
  4363.  
  4364.  
  4365.          Furthermore, there are 10 programmable hotkeys (sysop macros).
  4366.          They can be configured in ProCFG.
  4367.  
  4368.          There are 2 kinds of sysop macros:
  4369.  
  4370.             - Key macros   : With this type of macro, it is possible to
  4371.                              assign many keystrokes to a single key.
  4372.                              When the macro key is pressed, all keys
  4373.                              specified will be passed to ProBoard, as if
  4374.                              you typed them yourself.
  4375.  
  4376.                              Special chars: '|' is replaced by <Enter>
  4377.                                             '^' is replaced by <Esc>
  4378.  
  4379.  
  4380.  
  4381.  
  4382.  
  4383.  
  4384.                                       - 77 -
  4385.  
  4386.  
  4387.  
  4388.             - Shell macros : You can link any DOS command to a macro's hot-
  4389.                              key. A shell-definition MUST start with a '@'.
  4390.                              The string following the '@' should contain
  4391.                              the DOS command to be executed. You can,
  4392.                              of course, use the special shell options from
  4393.                              menu function 7.
  4394.  
  4395.                              Take this for an example:
  4396.  
  4397.                              Suppose you have set 'Swapping' to 'No' in
  4398.                              ProCFG. Should you, however, need ALL your
  4399.                              system memory in the shell, you could define
  4400.                              the following macro: @*C*N*Q*X (COMMAND.COM,
  4401.                              NoLog, NoMsg, Swapping).
  4402.  
  4403.  
  4404.  
  4405.          Command line parameters & Errorlevels
  4406.          ──────────────────────────────────────────────────────────────────
  4407.  
  4408.          PROBOARD.EXE accepts following command line parameters:
  4409.  
  4410.  
  4411.          PROBOARD [-B<baud>] [-P<port>] [-N<node>] [-Q] [-X] [-M] [-V<mode>]
  4412.  
  4413.  
  4414.          These parameters have the following meaning:
  4415.  
  4416.             -B<baud>   Specifies the communication baud rate.
  4417.  
  4418.             -P<port>   Specifies the communication com-port (1-8).
  4419.  
  4420.             -N<node>   This node's node number (1-255).
  4421.  
  4422.             -Q         Makes ProBoard shut up.
  4423.  
  4424.             -X         Tells ProBoard not to use EMS.
  4425.  
  4426.             -V<mode>   Runs ProBoard in video mode <mode>. This can be
  4427.                        useful if you have a monitor capable of displaying
  4428.                        132 columns, and you would like to run ProBoard in
  4429.                        such a mode (you will see an extra information
  4430.                        window on your screen if ProBoard is run in
  4431.                        132 cols mode)
  4432.  
  4433.             -M         Memory diagnostics mode. When using this switch,
  4434.                        ProBoard will display the amount of memory left,
  4435.                        the amount of memory used.
  4436.  
  4437.  
  4438.  
  4439.  
  4440.                                       - 78 -
  4441.  
  4442.  
  4443.  
  4444.          When no '-B<x>' parameter is given, ProBoard will be started in
  4445.          local mode.
  4446.  
  4447.  
  4448.          ProBoard returns an errorlevel when a user has logged off.
  4449.  
  4450.          The errorlevels of PROBOARD.EXE are:
  4451.  
  4452.               0    Everything OK, normal logoff.
  4453.  
  4454.               1    FATAL error, something 'terrible' happened.
  4455.  
  4456.               2    Not used.
  4457.  
  4458.               3    Netmail entered by the user.
  4459.  
  4460.               4    Echomail entered by the user.
  4461.  
  4462.               5    Echomail AND Netmail entered by the user.
  4463.  
  4464.  
  4465.  
  4466.          PB.EXE is the standalone (= no mailer) control program for
  4467.          ProBoard.
  4468.  
  4469.          PB.EXE accepts following command line parameters:
  4470.  
  4471.  
  4472.             PB [-B<baud>] [-P<port>] [-N<node>]
  4473.  
  4474.  
  4475.          These parameters have the following meaning:
  4476.  
  4477.               -B<baud>        Defines the modem's maximum baud rate.
  4478.  
  4479.               -P<port>        Defines the modem's com-port (1-8)
  4480.  
  4481.               -N<node>        This node's node number (1-255).
  4482.  
  4483.  
  4484.          All other options are directly passed to PROBOARD.EXE
  4485.  
  4486.  
  4487.  
  4488.  
  4489.  
  4490.  
  4491.  
  4492.  
  4493.  
  4494.  
  4495.  
  4496.                                       - 79 -
  4497.  
  4498.  
  4499.  
  4500.          The errorlevels of PB.EXE are:
  4501.  
  4502.               0    Everything OK.
  4503.  
  4504.             1-5    Same as PROBOARD.EXE
  4505.  
  4506.              99    <Esc> pressed.
  4507.  
  4508.             100    Modem cannot be initialized.
  4509.  
  4510.  
  4511.  
  4512.          Hard-coded ANS/ASC files
  4513.          ──────────────────────────────────────────────────────────────────
  4514.  
  4515.          In certain situations, ProBoard will display some default ANS/ASC
  4516.          files. If the .ANS file cannot be found, the .ASC file will be
  4517.          displayed (if it exists).
  4518.          You have to insert your own "Press [Enter] to continue" prompt if
  4519.          necessary!
  4520.  
  4521.  
  4522.          INTRO.ASC           Displayed when a user logs in, BEFORE asking a
  4523.                              user's name and password.
  4524.  
  4525.          GOODBYE.ANS/ASC     Displayed when the user is logging off, just
  4526.                              before the carrier is dropped.
  4527.  
  4528.          NEWUSER1.ANS/ASC    Displayed when a new user is logging in,
  4529.                              BEFORE he/she has started the questionnaire.
  4530.  
  4531.          NEWUSER2.ANS/ASC    Displayed when a new user is logging in, AFTER
  4532.                              he/she has completed the questionnaire.
  4533.  
  4534.          WELCOMEx.ANS/ASC    Displayed at login, after the user entered
  4535.                              his/her name.  The 'x' stands for a digit
  4536.                              ranging from 1 to 9; these files (if they
  4537.                              exist) will be displayed in ascending order,
  4538.                              1-2-...-9, BEFORE a mailcheck is done.
  4539.  
  4540.          NEWS.ANS/ASC        Displayed AFTER the user has read his new mail.
  4541.  
  4542.          SECxx.ANS/ASC       'xx' stands for a userlevel. If a user with
  4543.                              level xx logs in, this file will be displayed
  4544.                              (eg. SEC25.ANS). The file is shown after all
  4545.                              WELCOME<x> files and before the mailcheck.
  4546.  
  4547.          MAXPAGE.ANS/ASC     Displayed when the user is trying to page the
  4548.                              sysop too many times.
  4549.  
  4550.  
  4551.  
  4552.                                       - 80 -
  4553.  
  4554.  
  4555.  
  4556.          PAGED.ANS/ASC       Displayed when the sysop does not respond when
  4557.                              the user tries to page.
  4558.  
  4559.          NOTAVAIL.ANS/ASC    Displayed when the user tries to page outside
  4560.                              paging hours.
  4561.  
  4562.          MSGHELP.ANS/ASC     Replaces the built-in message reading help if
  4563.                              this file exists.
  4564.  
  4565.          PRIVATE.ANS/ASC     Is displayed when your system is configured
  4566.                              as a private system, and a new user tries
  4567.                              to log in.
  4568.  
  4569.          EXP_WARN.ANS/ASC    Displayed when the user's level expires within
  4570.                              < 30 days.
  4571.  
  4572.          EXPIRED.ANS/ASC     When a user's level has expired, this file is
  4573.                              shown.
  4574.  
  4575.          TRASHCAN.ANS/ASC    Shown when a user tried to use a name listed
  4576.                              in TRASHCAN.CTL
  4577.  
  4578.          EVENTDUE.ANS/ASC    Shown if a user can't login because of an
  4579.                              event that has to run soon.
  4580.  
  4581.          BIRTHDAY.ANS/ASC    If a user logs in on his/her birthday, this
  4582.                              file will be shown after the news file.
  4583.                              Note that you can run a pex-file to
  4584.                              congratulate a user with his birthday.
  4585.  
  4586.  
  4587.  
  4588.  
  4589.  
  4590.  
  4591.  
  4592.  
  4593.  
  4594.  
  4595.  
  4596.  
  4597.  
  4598.  
  4599.  
  4600.  
  4601.  
  4602.  
  4603.  
  4604.  
  4605.  
  4606.  
  4607.  
  4608.                                       - 81 -
  4609.  
  4610.  
  4611.  
  4612.          ANS/ASC Control codes
  4613.          ──────────────────────────────────────────────────────────────────
  4614.  
  4615.          You can use several codes in ProBoard's textfiles. These codes
  4616.          will be replaced by internal variables, or will perform special
  4617.          actions.
  4618.  
  4619.          In the code list, you will see a code's ASCII value, the control
  4620.          code and a description of the code.
  4621.  
  4622.          A '^' means Ctrl, so ^D means Ctrl-D.
  4623.  
  4624.  
  4625.          ┌───────┬──────┬─────────────────────────────────────────────────┐
  4626.          │ ASCII │ CODE │  DESCRIPTION                                    │
  4627.          ├───────┼──────┼─────────────────────────────────────────────────┤
  4628.          │   65  │  ^A  │ Waits for the user to press <Enter>.            │
  4629.          │   66  │  ^B  │ Disables interruption by pressing <S>.          │
  4630.          │   67  │  ^C  │ Enables interruption by pressing <S>.           │
  4631.          │   68  │  ^D  │ Enables 'More'-prompt.                          │
  4632.          │   69  │  ^E  │ Disables 'More'-prompt.                         │
  4633.          │   71  │  ^G  │ Rings a bell on the user's computer.            │
  4634.          │   76  │  ^L  │ Clearscreen.                                    │
  4635.          │   87  │  ^W  │ Pauses for 1 second.                            │
  4636.          └───────┴──────┴─────────────────────────────────────────────────┘
  4637.  
  4638.  
  4639.  
  4640.  
  4641.  
  4642.  
  4643.  
  4644.  
  4645.  
  4646.  
  4647.  
  4648.  
  4649.  
  4650.  
  4651.  
  4652.  
  4653.  
  4654.  
  4655.  
  4656.  
  4657.  
  4658.  
  4659.  
  4660.  
  4661.  
  4662.  
  4663.  
  4664.                                       - 82 -
  4665.  
  4666.  
  4667.  
  4668.          ┌───────┬──────┬─────────────────────────────────────────────────┐
  4669.          │ ASCII │ CODE │  DESCRIPTION                                    │
  4670.          ├───────┼──────┼─────────────────────────────────────────────────┤
  4671.          │ 06-65 │ ^FA  │ User's full name.                               │
  4672.          │ 06-66 │ ^FB  │ User's City.                                    │
  4673.          │ 06-67 │ ^FC  │ User's password.                                │
  4674.          │ 06-68 │ ^FD  │ User's data/fax phone number.                   │
  4675.          │ 06-69 │ ^FE  │ User's phone number.                            │
  4676.          │ 06-71 │ ^FG  │ Time of last login.                             │
  4677.          │ 06-76 │ ^FL  │ Netmail credit left.                            │
  4678.          │ 06-77 │ ^FM  │ Number of messages written.                     │
  4679.          │ 06-78 │ ^FN  │ Message last read.                              │
  4680.          │ 06-79 │ ^FO  │ User's level.                                   │
  4681.          │ 06-80 │ ^FP  │ Number of calls by user.                        │
  4682.          │ 06-81 │ ^FQ  │ Number of uploads by user.                      │
  4683.          │ 06-82 │ ^FR  │ Kbytes uploaded by user.                        │
  4684.          │ 06-83 │ ^FS  │ Number of downloads by user.                    │
  4685.          │ 06-84 │ ^FT  │ Kbytes downloaded by user.                      │
  4686.          │ 06-85 │ ^FU  │ Number of minutes online today.                 │
  4687.          │ 06-86 │ ^FV  │ User's screen length.                           │
  4688.          │ 06-87 │ ^FW  │ User's first name.                              │
  4689.          │ 06-88 │ ^FX  │ ANSI codes ON/OFF.                              │
  4690.          │ 06-89 │ ^FY  │ Screen pausing ON/OFF.                          │
  4691.          │ 06-90 │ ^FZ  │ Clearscreen codes ON/OFF.                       │
  4692.          │ 06-48 │ ^F0  │ Fullscreen editor ON/OFF.                       │
  4693.          │ 06-49 │ ^F1  │ User Alias                                      │
  4694.          │ 06-50 │ ^F2  │ Command stacking ON/OFF.                        │
  4695.          │ 06-51 │ ^F3  │ IBM Characters ON/OFF.                          │
  4696.          │ 06-52 │ ^F4  │ User's country                                  │
  4697.          └───────┴──────┴─────────────────────────────────────────────────┘
  4698.  
  4699.  
  4700.  
  4701.  
  4702.  
  4703.  
  4704.  
  4705.  
  4706.  
  4707.  
  4708.  
  4709.  
  4710.  
  4711.  
  4712.  
  4713.  
  4714.  
  4715.  
  4716.  
  4717.  
  4718.  
  4719.  
  4720.                                       - 83 -
  4721.  
  4722.  
  4723.  
  4724.          ┌───────┬──────┬─────────────────────────────────────────────────┐
  4725.          │ ASCII │ CODE │   DESCRIPTION                                   │
  4726.          ├───────┼──────┼─────────────────────────────────────────────────┤
  4727.          │ 11-65 │ ^KA  │ Total number of calls to the BBS.               │
  4728.          │ 11-66 │ ^KB  │ Name of the last user on the BBS.               │
  4729.          │ 11-67 │ ^KC  │ Number of active messages.                      │
  4730.          │ 11-68 │ ^KD  │ Number of first message.                        │
  4731.          │ 11-69 │ ^KE  │ Number of last message.                         │
  4732.          │ 11-70 │ ^KF  │ Number of times user has paged the sysop.       │
  4733.          │ 11-71 │ ^KG  │ Day of the week (full).                         │
  4734.          │ 11-72 │ ^KH  │ Number of users on the BBS.                     │
  4735.          │ 11-73 │ ^KI  │ Current time.                                   │
  4736.          │ 11-74 │ ^KJ  │ Today's date.                                   │
  4737.          │ 11-75 │ ^KK  │ Minutes online during this session.             │
  4738.          │ 11-77 │ ^KM  │ Minutes online today.                           │
  4739.          │ 11-79 │ ^KO  │ Minutes online left today.                      │
  4740.          │ 11-80 │ ^KP  │ Version number of ProBoard (x.xx)               │
  4741.          │ 11-81 │ ^KQ  │ Daily online limit.                             │
  4742.          │ 11-82 │ ^KR  │ Baud rate.                                      │
  4743.          │ 11-83 │ ^KS  │ Day of the week (short).                        │
  4744.          │ 11-84 │ ^KT  │ Daily download limit (Kbytes).                  │
  4745.          │ 11-87 │ ^KW  │ Node number.                                    │
  4746.          │ 11-88 │ ^KX  │ Hang up phone.                                  │
  4747.          │ 11-89 │ ^KY  │ Active message area name.                       │
  4748.          │ 11-90 │ ^KZ  │ Active file area name.                          │
  4749.          │ 11-48 │ ^K0  │ # Messages in active message area               │
  4750.          │ 11-49 │ ^K1  │ Current message area #                          │
  4751.          │ 11-50 │ ^K2  │ Current file area #                             │
  4752.          └───────┴──────┴─────────────────────────────────────────────────┘
  4753.  
  4754.  
  4755.          You can also inform ProBoard about the length of a string to be
  4756.          placed in a textfile. This is done is the following way:
  4757.  
  4758.          Between the first and last code, you can place '@' or '#' codes.
  4759.          The field's length will be defined by the number of characters,
  4760.          first and last control code included. Use '@' to align (justify)
  4761.          a field to the left, use '#' to align to the right.
  4762.  
  4763.  
  4764.              Eg. ^K@@@@@@@@@@@@@@@@@@@@@@@B
  4765.                   ^^^^^^^^^^^^^^^^^^^^^^^
  4766.                         23 X '@'
  4767.  
  4768.          Thus, the total amount of characters equals 25, the user's name
  4769.          (^KB) will be placed in a 25-character field, left justified. You
  4770.          now can easily draw 'boxes' around this field, without having to
  4771.          worry about the actual length of the user's name.
  4772.  
  4773.  
  4774.  
  4775.  
  4776.                                       - 84 -
  4777.  
  4778.  
  4779.  
  4780.          An example of a textfile using the control codes: (the '^' stands
  4781.          for '^F') :
  4782.  
  4783.  
  4784.           ┌───────────┐
  4785.           │ Some Info │
  4786.           └───┬───────┴───────────────────────────────────────────────────┐
  4787.               │ Your full name..... ^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A    │
  4788.               │ Calling from....... ^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B    │
  4789.               │ Last called........ ^@@@@@@@@@F at ^@@@@@@G               │
  4790.               │ Level.............. ^####O                                │
  4791.               │ Number of calls.... ^####P                                │
  4792.               ├──────────────────────────────┬────────────────────────────┤
  4793.               │ Kb downloaded...... ^@@@@TK  │ Kb uploaded....... ^####RK │
  4794.               │ # downloads........ ^####S   │ # uploads......... ^####Q  │
  4795.               ├──────────────────────────────┴────────────────────────────┤
  4796.               │ Messages posted.... ^####M                                │
  4797.               │ Your flags......... ^@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H    │
  4798.               ├─────────────────┐                                         │
  4799.               │ ANSI        ^#X ├─────────────────────────────────────────┘
  4800.               │ Clearscreen ^#Z │
  4801.               │ More prompt ^#Y │
  4802.               │ Editor      ^#O │
  4803.               └─────────────────┘  Press <Enter> to continue.^A
  4804.  
  4805.  
  4806.  
  4807.  
  4808.          Music Files
  4809.          ──────────────────────────────────────────────────────────────────
  4810.  
  4811.          You can make your paging-sound and attention-sound more attractive
  4812.          by defining your own musicfile. A musicfile is a text file in
  4813.          which you can use 2 keywords:
  4814.  
  4815.            TONE [hz] [1/100's sec]      Sounds a tone of [hz] Hz during
  4816.                                         the specified period.
  4817.  
  4818.            WAIT [1/100's sec]           Waits for the specified period.
  4819.  
  4820.  
  4821.          The format of this textfile is compatible with the Remote Access
  4822.          musicfiles.
  4823.  
  4824.          The paging-musicfile is named PAGE.MUS, and the attention-music-
  4825.          file is named ATTEN.MUS.
  4826.  
  4827.  
  4828.  
  4829.  
  4830.  
  4831.  
  4832.                                       - 85 -
  4833.  
  4834.  
  4835.  
  4836.          You can use this frequency-table to write your own masterpiece:
  4837.  
  4838.                  ┌──────┬─────┬─────┬──────┬──────┬──────┐
  4839.                  │  O.1 │ O.2 │ O.3 │  O.4 │  O.5 │  O.6 │
  4840.             ┌────┼──────┼─────┼─────┼──────┼──────┼──────┤
  4841.             │ C  │   45 │ 134 │ 268 │  536 │ 1071 │ 2145 │
  4842.             │ C# │   71 │ 142 │ 284 │  568 │ 1136 │ 2273 │
  4843.             │ D  │   75 │ 150 │ 301 │  602 │ 1204 │ 2408 │
  4844.             │ D# │   80 │ 159 │ 319 │  638 │ 1275 │ 2551 │
  4845.             │ E  │   84 │ 169 │ 338 │  676 │ 1351 │ 2703 │
  4846.             │ F  │   90 │ 179 │ 358 │  716 │ 1432 │ 2864 │
  4847.             │ F# │   95 │ 190 │ 379 │  758 │ 1517 │ 3034 │
  4848.             │ G  │  100 │ 201 │ 402 │  804 │ 1607 │ 3215 │
  4849.             │ G# │  106 │ 213 │ 426 │  851 │ 1703 │ 3406 │
  4850.             │ A  │  113 │ 225 │ 451 │  902 │ 1804 │ 3608 │
  4851.             │ A# │  119 │ 239 │ 478 │  956 │ 1991 │ 3823 │
  4852.             │ B  │  127 │ 253 │ 506 │ 1012 │ 2025 │ 4050 │
  4853.             └────┴──────┴─────┴─────┴──────┴──────┴──────┘
  4854.  
  4855.  
  4856.  
  4857.          Text Macros
  4858.          ──────────────────────────────────────────────────────────────────
  4859.  
  4860.          You can enter text macros in any user-definable string. Text
  4861.          macros are defined as "@<NAME>@", and are replaced by internal
  4862.          ProBoard variables at runtime.
  4863.          You can insert these macros in the following strings:
  4864.  
  4865.            - Textlines in menu items
  4866.            - Data fields in menu items
  4867.            - Menu prompts
  4868.            - "Yelling" message for the yell menu function
  4869.            - "Shelling" message for the shell menu function
  4870.  
  4871.  
  4872.  
  4873.  
  4874.  
  4875.  
  4876.  
  4877.  
  4878.  
  4879.  
  4880.  
  4881.  
  4882.  
  4883.  
  4884.  
  4885.  
  4886.  
  4887.  
  4888.                                       - 86 -
  4889.  
  4890.  
  4891.  
  4892.          Here is a list of the available macros:
  4893.  
  4894.            BAUD              Current baud rate
  4895.            CITY              The city of the current user
  4896.            COUNTRY           User's country/state
  4897.            CURFILEAREA       Current file area name
  4898.            CURFILEAREA#      Current file area number
  4899.            CURMENU           Current menu name
  4900.            CURMSGAREA        Current message area name
  4901.            CURMSGAREA#       Current message area number
  4902.            DATAPHONE         User's data phone number
  4903.            DATE              Current date (xx-xxx-xx)
  4904.            FIRSTNAME         The first name of the current user
  4905.            HANDLE            The user's handle (fixed alias)
  4906.            HIGHMSG           Highest message number in message base
  4907.            ID                The user level ID for this user
  4908.            LASTDATE          Date of user's last call
  4909.            LASTTIME          Time of user's last call
  4910.            LEVEL             The level of the current user
  4911.            LOWMSG            Lowest message number in message base
  4912.            MNUDIR            Menu directory
  4913.            MSGDIR            Messagebase directory
  4914.            NAME              The name of the current user
  4915.            NLDIR             Nodelist directory
  4916.            NODE              Current node number
  4917.            NUMMSG            Number of messages in current area
  4918.            NUMUSERS          Total number of users in userfile
  4919.            NUMYELLS          The number of times the user yelled
  4920.            PASSWORD          The user's password
  4921.            PEXDIR            PEX-files directory
  4922.            PORT              Current com-port nr (1-8)
  4923.            PVTDIR            Private uploads directory
  4924.            STARTDIR          Startup-directory
  4925.            SYSDIR            ProBoard system directory
  4926.            SYSOPNAME         Name of the sysop
  4927.            TIME              Current time (xx:xx)
  4928.            TMLEFT            Number of minutes left
  4929.            TMONLINE          Number of minutes online
  4930.            TOTALCALLS        Total number of calls to the system
  4931.            TOTALMSG          Total number of messages in message base
  4932.            TXTDIR            Textfiles directory
  4933.            UPDIR             Upload directory
  4934.            USERREC           Record number of this user's user record
  4935.            VERSION           ProBoard version number (eg 1.16)
  4936.            VOICEPHONE        User's voice phone number
  4937.  
  4938.  
  4939.  
  4940.  
  4941.  
  4942.  
  4943.  
  4944.                                       - 87 -
  4945.  
  4946.  
  4947.  
  4948.            #1 - #7           Change color (only valid for displayable
  4949.            #B1 - #B7         strings). If a 'B' is in front of the color
  4950.                              number, the "blink" attribute will be turned
  4951.                              on.
  4952.                                      1 = Red
  4953.                                      2 = Green
  4954.                                      3 = Yellow
  4955.                                      4 = Blue
  4956.                                      5 = Magenta
  4957.                                      6 = Cyan
  4958.                                      7 = White
  4959.  
  4960.  
  4961.          Example:  Hi @<#3>@@<FIRSTNAME>@@<#7>@, how is the weather in @<CITY>@?
  4962.  
  4963.  
  4964.  
  4965.          Example batch files
  4966.          ──────────────────────────────────────────────────────────────────
  4967.  
  4968.          This is an example for standalone-operation with 2 errorlevel
  4969.          events defined. Event 1 returns level 10, event 2 returns level
  4970.          20. No echomail and netmail is used.
  4971.  
  4972.          ------------------------------------------------------------------
  4973.              :Loop
  4974.              PB
  4975.              if errorlevel 100 goto FatalError
  4976.              if errorlevel 99 goto End
  4977.              if errorlevel 20 goto Event2
  4978.              if errorlevel 10 goto Event1
  4979.              if errorlevel 1 goto FatalError
  4980.              goto Loop
  4981.  
  4982.              :Event1
  4983.              echo Perform some actions
  4984.              echo --------------------
  4985.              goto Loop
  4986.  
  4987.              :Event2
  4988.              echo Perform some more actions
  4989.              echo -------------------------
  4990.              goto Loop
  4991.  
  4992.              :FatalError
  4993.              echo FATAL ERROR - ProBoard Down
  4994.              :End
  4995.          ------------------------------------------------------------------
  4996.  
  4997.  
  4998.  
  4999.  
  5000.                                       - 88 -
  5001.  
  5002.  
  5003.  
  5004.          Using ProBoard with a frontend-mailer is a little more
  5005.          complicated. This is an example for use with FrontDoor.
  5006.  
  5007.          In this example FrontDoor uses the following errrolevels:
  5008.  
  5009.             300 bps call : 50
  5010.            1200 bps call : 51
  5011.            2400 bps call : 52
  5012.            Local call    : 60
  5013.            Mail received : 100
  5014.            Exit          : 150
  5015.  
  5016.          ------------------------------------------------------------------
  5017.              SET FD=C:\FD
  5018.  
  5019.              :Loop
  5020.              cd \fd
  5021.              fd
  5022.              if errorlevel 150 goto End
  5023.              if errorlevel 100 goto MailRcv
  5024.              cd\pb
  5025.              if errorlevel  60 goto Local
  5026.              if errorlevel  52 goto Call2400
  5027.              if errorlevel  51 goto Call1200
  5028.              if errorlevel  50 goto Call300
  5029.  
  5030.              :FatalErr
  5031.              echo FATAL ERROR
  5032.              goto End
  5033.  
  5034.              :Call300
  5035.              proboard -b300 -p1
  5036.              goto CheckPBErr
  5037.  
  5038.              :Call1200
  5039.              proboard -b1200 -p1
  5040.              goto CheckPBErr
  5041.  
  5042.              :Call2400
  5043.              proboard -b2400 -p1
  5044.              goto CheckPBErr
  5045.  
  5046.              :Local
  5047.              proboard
  5048.  
  5049.  
  5050.  
  5051.  
  5052.  
  5053.  
  5054.  
  5055.  
  5056.                                       - 89 -
  5057.  
  5058.  
  5059.  
  5060.              :CheckPBErr
  5061.              if errorlevel 5 goto NetEcho
  5062.              if errorlevel 4 goto EchoEntered
  5063.              if errorlevel 3 goto NetEntered
  5064.              if errorlevel 1 goto FatalErr
  5065.              goto Loop
  5066.  
  5067.              :NetEcho
  5068.              REM ************************************
  5069.              REM ** Export netmail & echomail here **
  5070.              REM ************************************
  5071.              Goto Loop
  5072.  
  5073.              :NetEntered
  5074.              REM ************************************
  5075.              REM **      Export netmail here       **
  5076.              REM ************************************
  5077.              Goto Loop
  5078.  
  5079.              :EchoEntered
  5080.              REM ************************************
  5081.              REM **      Export echomail here      **
  5082.              REM ************************************
  5083.              Goto Loop
  5084.  
  5085.              :MailRcv
  5086.              REM ************************************
  5087.              REM **  Unpack and Import mail here   **
  5088.              REM ************************************
  5089.              Goto Loop
  5090.  
  5091.              :End
  5092.          ------------------------------------------------------------------
  5093.  
  5094.  
  5095.  
  5096.  
  5097.  
  5098.  
  5099.  
  5100.  
  5101.  
  5102.  
  5103.  
  5104.  
  5105.  
  5106.  
  5107.  
  5108.  
  5109.  
  5110.  
  5111.  
  5112.                                       - 90 -
  5113.  
  5114.  
  5115.  
  5116.                           ┌──────────────────────────────┐
  5117.                           │ XI. SOFTWARE DEVELOPMENT KIT │
  5118.                           └──────────────────────────────┘
  5119.  
  5120.  
  5121.          Included with ProBoard is a C library that allows you to write
  5122.          your own extensions to ProBoard in C or C++. All you need is an
  5123.          ANSI-compatible C or C++ compiler. The programs you create can be
  5124.          run within ProBoard by executing a new menu function.
  5125.  
  5126.          The ProBoard SDK files included with ProBoard are free software,
  5127.          so anyone who does not use ProBoard to run a BBS on a regular
  5128.          basis, but wants to write extension files, is allowed to do so
  5129.          without registering ProBoard. You can distribute any ProBoard
  5130.          extension files (PEX files) royalty-free. As far as we are
  5131.          concerned, any program you develop with the ProBoard SDK is your
  5132.          property.
  5133.  
  5134.  
  5135.  
  5136.          Requirements
  5137.          ──────────────────────────────────────────────────────────────────
  5138.  
  5139.          To create your own programs you need:
  5140.  
  5141.          - An ANSI compatible C or C++ compiler. Compilers known to be
  5142.            compatible with the ProBoard SDK are:
  5143.  
  5144.               - Zortech C/C++ 2.0 - 3.0
  5145.               - Microsoft C 5.1 - 6.0
  5146.               - Borland C++ 2.0
  5147.               - Turbo C++ 1.0
  5148.               - Turbo C 1.0 - 2.0
  5149.  
  5150.            Other compilers may work too, but were not tested.
  5151.  
  5152.          - An MS-compatible linker (usually the one that came with your
  5153.            compiler).
  5154.  
  5155.            Linkers known to work with the ProBoard SDK are:
  5156.  
  5157.               - All Microsoft Linkers (LINK.EXE)
  5158.               - Borland's Turbo Link (TLINK)
  5159.               - Zortech's BLINK
  5160.  
  5161.          - The ProBoard SDK include file PB_SDK.H
  5162.  
  5163.          - The ProBoard SDK library PB_SDK.LIB
  5164.  
  5165.  
  5166.  
  5167.  
  5168.                                       - 91 -
  5169.  
  5170.  
  5171.  
  5172.          Creating ProBoard Executables (PEX-files)
  5173.          ──────────────────────────────────────────────────────────────────
  5174.  
  5175.          To create your own ProBoard executable (.PEX file), you first
  5176.          create a source file, say MYPROG.C. When ProBoard loads a PEX
  5177.          file, it executes the function main() in your program. This
  5178.          function is defined as:
  5179.  
  5180.          main(int argc,char *argv[])
  5181.          {
  5182.          ...
  5183.  
  5184.          return 0;
  5185.          }
  5186.  
  5187.          The parameters 'argc' & 'argv' contain optional data that can be
  5188.          given to your program at load time (exactly like C's argc and argv
  5189.          parameters).  Creating this main() function is the only thing you
  5190.          need to do to write a valid ProBoard executable. You have to make
  5191.          sure to return 0 from main()! From this point on, it's just like
  5192.          writing a regular C program.  Most of the ANSI standard library
  5193.          functions are available, plus many ProBoard-specific functions and
  5194.          global variables, used for interfacing between your program and
  5195.          the ProBoard environment.  As in a regular executable, you can
  5196.          build your program from several source files.
  5197.  
  5198.          This is a tiny sample ProBoard program:
  5199.  
  5200.          #include "pb_sdk.h"
  5201.  
  5202.          main()
  5203.          {
  5204.           printf("You have %d minutes left.\n",TimeLeft());
  5205.  
  5206.           AddTime(10);
  5207.  
  5208.           printf("Now you have %d minutes left.\n",TimeLeft());
  5209.  
  5210.           return 0;
  5211.          }
  5212.  
  5213.  
  5214.          Included with ProBoard are a few example programs (in source form
  5215.          of course).
  5216.  
  5217.  
  5218.  
  5219.  
  5220.  
  5221.  
  5222.  
  5223.  
  5224.                                       - 92 -
  5225.  
  5226.  
  5227.  
  5228.          Compiling and linking
  5229.          ──────────────────────────────────────────────────────────────────
  5230.  
  5231.          ProBoard executables have to be compiled using the LARGE memory
  5232.          model.
  5233.  
  5234.          For example (Turbo C++) : tcc -c -ml myprog.c
  5235.  
  5236.          Once you have your .OBJ file (in this case MYPROG.OBJ), you have
  5237.          to link it with the ProBoard SDK library (PB_SDK.LIB). You have to
  5238.          specify a filename as output filename. The linked executable must
  5239.          have extension .PEX. It is important to disable linking of the
  5240.          default compiler libraries!! It is also recommended to turn on
  5241.          case sensitivity.
  5242.  
  5243.          e.g.   Turbo C++ :  TLINK MYPROG,MYPROG.PEX,,PB_SDK /N /C
  5244.                 Microsoft :  LINK MYPROG,MYPROG.PEX,,PB_SDK /NOD /NOI;
  5245.                 Zortech   :  BLINK MYPROG,MYPROG.PEX,,PB_SDK /NOD /NOI;
  5246.  
  5247.          That's all there is to it. Now you can run your program through
  5248.          ProBoard menu function 60.
  5249.  
  5250.          I will now give the compiler syntax for some popular compilers:
  5251.  
  5252.           Zortech C/C++ : ztc -c -a -ml myprog.c
  5253.           Microsoft C   : cl -Zep -Gs -c -AL myprog.c
  5254.           Turbo C/C++   : tcc -c -ml myprog.c
  5255.           Borland C++   : bcc -c -ml myprog.c
  5256.  
  5257.          And linker syntax:
  5258.  
  5259.           Borland       : TLINK MYPROG,MYPROG.PEX,,PB_SDK /N /C
  5260.           Microsoft     : LINK MYPROG,MYPROG.PEX,,PB_SDK /NOD /NOI;
  5261.           Zortech       : BLINK MYPROG,MYPROG.PEX,,PB_SDK /NOD /NOI;
  5262.  
  5263.  
  5264.  
  5265.          Restrictions
  5266.          ──────────────────────────────────────────────────────────────────
  5267.  
  5268.          There are few restrictions in writing ProBoard executables. For C
  5269.          programs there are actually only two major restriction: long math
  5270.          & floating point operations.
  5271.  
  5272.  
  5273.  
  5274.  
  5275.  
  5276.  
  5277.  
  5278.  
  5279.  
  5280.                                       - 93 -
  5281.  
  5282.  
  5283.  
  5284.          Due to the fact that all compilers generate function calls to
  5285.          multiply, divide and shift long integers, and that every compiler
  5286.          vendor uses its own array of functions, it is impossible to
  5287.          include these functions in the ProBoard SDK. As a result, it is
  5288.          not directly possible to perform these operations on long values
  5289.          (eg. long1 = long2 * long3). However, we did include functions to
  5290.          perform these operations, but you will have to call these
  5291.          functions explicitly (eg. long1 = l_mul(long2,long3)).  People who
  5292.          know their compiler well, can work around this problem by
  5293.          extracting the long math functions from the standard library, and
  5294.          linking them with the PEX file. For example, the long math
  5295.          functions used by the Zortech compiler are in the module
  5296.          LMATH.OBJ, located in the library ZLC.LIB. Extracting this module
  5297.          is as simple as :  LIB ZLS *LMATH;
  5298.  
  5299.          These are the ProBoard long math functions that you can use:
  5300.  
  5301.          long l_mul(long1,long2)   Multiply 2 long values   = long1 * long2
  5302.          long l_div(long1,long2)   Divide 2 long values     = long1 / long2
  5303.          long l_mod(long1,long2)   Modulo of 2 long values  = long1 % long2
  5304.          long l_shl(long1,int1)    Left shift a long value  = long1 << int1
  5305.          long l_shr(long1,int1)    Right shift a long value = long1 >> int1
  5306.  
  5307.          The functions l_div(), l_mod(), l_shl() and l_shr() are also
  5308.          available for unsigned long values: ul_div(), ul_mod(), ul_shl()
  5309.          and ul_shr().
  5310.  
  5311.          Floating point operations are NOT supported. So it is not possible
  5312.          to use 'double' and 'float' variables & constants.
  5313.  
  5314.          Another major restriction only affects C++ programs. In a ProBoard
  5315.          C++ program, you can't declare global variables that have
  5316.          constructors or destructors (ie. no static
  5317.          constructors/destructors). So this will compile fine, but will
  5318.          certainly crash your machine:
  5319.  
  5320.          class myclass
  5321.            {
  5322.             int a;
  5323.           public:
  5324.             x() { .... some action .... }
  5325.            ~x() { .... some action .... }
  5326.            };
  5327.  
  5328.          myclass some_global_object;
  5329.  
  5330.          main()
  5331.          {
  5332.          ...
  5333.          }
  5334.  
  5335.  
  5336.                                       - 94 -
  5337.  
  5338.  
  5339.  
  5340.          You can, however, use objects with constructors and destructors,
  5341.          as long as they are declared within a function. So this would
  5342.          work:
  5343.  
  5344.          main()
  5345.          {
  5346.           myclass some_local_object;
  5347.           ....
  5348.          }
  5349.  
  5350.  
  5351.          Library functions supported
  5352.          ──────────────────────────────────────────────────────────────────
  5353.  
  5354.          Almost all standard library functions are supported. Note that all
  5355.          functions that write to the standard output device (printf,
  5356.          putchar,...) write their output to the ProBoard window and to the
  5357.          user (through the modem).  Functions that read from the standard
  5358.          input device and from the keyboard are NOT supported.
  5359.          (scanf,getch,gets,...) We provide substitutes for these functions.
  5360.  
  5361.          Functions supported:
  5362.  
  5363.               fopen , freopen , fseek , ftell , fgets , fgetc , fflush
  5364.               fclose , fputs , getc , getchar , gets , fputc , putc ,
  5365.               putchar , puts , fread , fwrite , printf , fprintf ,
  5366.               vfprintf , vprintf , sprintf , vsprintf , setbuf ,
  5367.               setvbuf , remove , rename , rewind , clearerr , feof ,
  5368.               isalpha , iscntrl , isdigit , isgraph , islower ,
  5369.               isprint , ispunct , isspace , isupper , isxdigit ,
  5370.               toupper , tolower , int86x , intdos , intdosx ,
  5371.               dos_findfirst , dos_findnext , write , open , creat ,
  5372.               close , unlink , chsize , dup , dup2 , lseek , access ,
  5373.               filesize , filelength , isatty , atoi , atol , strtol ,
  5374.               rand , srand , calloc , free , malloc , realloc ,
  5375.               getenv , bsearch , qsort , abs , labs , memcpy , memmove ,
  5376.               strcpy , strncpy , strcat , strncat , memcmp , strcmp ,
  5377.               strncmp , memchr , strchr , strcspn , strpbrk , strrchr ,
  5378.               strspn , strstr , strtok , memset , strlen , memicmp ,
  5379.               stpcpy , strcmpl , strnicmp , strdup , strlwr , strupr ,
  5380.               strnset , strrev , strset , swab , strncmpl , strnicmp ,
  5381.               clock , time , mktime , asctime , ctime , localtime ,
  5382.               gmtime , strftime , sleep , usleep , msleep , difftime
  5383.  
  5384.  
  5385.          For information on these functions, consult your compiler's
  5386.          library reference manual.
  5387.  
  5388.  
  5389.  
  5390.  
  5391.  
  5392.                                       - 95 -
  5393.  
  5394.  
  5395.  
  5396.          In the string output functions (printf and puts), you can use the
  5397.          following control codes in your string:
  5398.  
  5399.          \001 or \x01   Set output color to red
  5400.          ||    ||||
  5401.          ||    ||||
  5402.          \007 or \x07   Set output color to white
  5403.  
  5404.          \x11 to \x17   Same as \1 to \7, but blinking colors
  5405.  
  5406.          \t             Stops output of string until user presses [Enter]
  5407.          \f             Clears the user's screen
  5408.  
  5409.  
  5410.          NOTE: Do NOT include any standard include files from your
  5411.          compiler. The only include file you can use is PB_SDK.H.
  5412.          THAT'S IT!!
  5413.  
  5414.  
  5415.  
  5416.  
  5417.  
  5418.  
  5419.  
  5420.  
  5421.  
  5422.  
  5423.  
  5424.  
  5425.  
  5426.  
  5427.  
  5428.  
  5429.  
  5430.  
  5431.  
  5432.  
  5433.  
  5434.  
  5435.  
  5436.  
  5437.  
  5438.  
  5439.  
  5440.  
  5441.  
  5442.  
  5443.  
  5444.  
  5445.  
  5446.  
  5447.  
  5448.                                       - 96 -
  5449.  
  5450.  
  5451.  
  5452.          ProBoard interface functions
  5453.          ──────────────────────────────────────────────────────────────────
  5454.  
  5455.          This is a list of all the functions that can be used to interface
  5456.          with ProBoard.
  5457.  
  5458.          Several types have been defined in the file PB_SDK.H
  5459.  
  5460.            bool    : a boolean value that can have the values TRUE or FALSE
  5461.            byte    : an unsigned character (8 bits)
  5462.            KEY     : used for key scan codes (for sysopkey handlers and the
  5463.                      ScanKey() function).
  5464.  
  5465.  
  5466.          ------------------------------------------------------------------
  5467.          void AddTime(int min);
  5468.          ------------------------------------------------------------------
  5469.  
  5470.          Adds 'min' minutes to the user's time left. If 'min' is negative, the
  5471.          number of minutes will be subtracted from the time left.
  5472.  
  5473.          Examples:    AddTime(10);         /* Adds 10 minutes */
  5474.                       AddTime(-5);         /* Subtracts 5 minutes */
  5475.  
  5476.  
  5477.  
  5478.          ------------------------------------------------------------------
  5479.          int TimeLeft(void);
  5480.          ------------------------------------------------------------------
  5481.  
  5482.          Returns the time left in minutes for the current user.
  5483.  
  5484.  
  5485.  
  5486.          ------------------------------------------------------------------
  5487.          int TimeOnline(void);
  5488.          ------------------------------------------------------------------
  5489.  
  5490.          Returns the time in minutes that the current user is online.
  5491.  
  5492.  
  5493.  
  5494.          ------------------------------------------------------------------
  5495.          void SuspendTimer(void);
  5496.          ------------------------------------------------------------------
  5497.  
  5498.          Suspends the online-timer for the current user. No time will be
  5499.          subtracted until RestartTimer() is called.
  5500.  
  5501.  
  5502.  
  5503.  
  5504.                                       - 97 -
  5505.  
  5506.  
  5507.  
  5508.          ------------------------------------------------------------------
  5509.          void RestartTimer(void);
  5510.          ------------------------------------------------------------------
  5511.  
  5512.          Restarts the timer after a call to SuspendTimer().
  5513.  
  5514.  
  5515.  
  5516.          ------------------------------------------------------------------
  5517.          void AdjustTime(void);
  5518.          ------------------------------------------------------------------
  5519.  
  5520.          Call this function if you changed the user's level. This
  5521.          recalculates all limits (time,download,...).
  5522.  
  5523.  
  5524.  
  5525.          ------------------------------------------------------------------
  5526.          void MsgEd(void);
  5527.          ------------------------------------------------------------------
  5528.  
  5529.          Fires up the internal message editor or the fullscreen editor,
  5530.          depending on the settings of the user. The message will be stored
  5531.          in the file MSGTMP in the current directory. If a message is
  5532.          aborted, the file MSGTMP will be deleted by the message editor.
  5533.          If you create a MSGTMP file before invoking the message editor,
  5534.          this file will be used as a 'quote' message.
  5535.  
  5536.  
  5537.  
  5538.          ------------------------------------------------------------------
  5539.          int PostMessage(char *from,char *to,char *subject,int area,
  5540.                          bool pvt);
  5541.          ------------------------------------------------------------------
  5542.  
  5543.          Posts a message to a user.
  5544.  
  5545.             from    = Name of the sender
  5546.             to      = Name of the user you're sending the message to
  5547.             subject = Subject of the message
  5548.             area    = Message area number where the message has to
  5549.                       be posted in.
  5550.             pvt     = Private status (TRUE=private, FALSE=public)
  5551.  
  5552.          No checking is performed on any of the parameters!
  5553.  
  5554.  
  5555.          Return value: -1 on error
  5556.                         0 if ok
  5557.  
  5558.  
  5559.  
  5560.                                       - 98 -
  5561.  
  5562.  
  5563.  
  5564.          ------------------------------------------------------------------
  5565.          int PostNetmail(char *from,char *to,char *subject,int area,
  5566.                          FIDO_NODE *address,bool attach,bool crash,
  5567.                          bool kill);
  5568.          ------------------------------------------------------------------
  5569.  
  5570.          Posts a netmail message.
  5571.  
  5572.             from    = Name of the sender
  5573.             to      = Name of the user you're sending the message to
  5574.             subject = Subject of the message
  5575.             area    = Message area number where the message has to
  5576.                       be posted in
  5577.             address = Destination node number of this message.
  5578.             attach  = TRUE for a file attach message
  5579.             crash   = TRUE if this message is a crashmail message
  5580.             kill    = TRUE if the message has to be deleted after it is
  5581.                       sent
  5582.  
  5583.  
  5584.          FIDO_NODE is a structure with the following fields:
  5585.  
  5586.            struct
  5587.              {
  5588.               unsigned zone;  /* Zone number  */
  5589.               unsigned net;   /* Net number   */
  5590.               unsigned node;  /* Node number  */
  5591.               unsigned point; /* Point number */
  5592.              }
  5593.  
  5594.          No checking is performed on any of the parameters!
  5595.  
  5596.          Return value: -1 on error
  5597.                         0 if ok
  5598.  
  5599.  
  5600.  
  5601.  
  5602.  
  5603.  
  5604.  
  5605.  
  5606.  
  5607.  
  5608.  
  5609.  
  5610.  
  5611.  
  5612.  
  5613.  
  5614.  
  5615.  
  5616.                                       - 99 -
  5617.  
  5618.  
  5619.  
  5620.          ------------------------------------------------------------------
  5621.          int ReadMsgArea(int area,MSGAREA *ma);
  5622.          ------------------------------------------------------------------
  5623.  
  5624.          Reads data about a message area.
  5625.  
  5626.               area  = Message area number (1-200)
  5627.               ma    = Pointer to a MSGAREA structure to be filled
  5628.  
  5629.          Check the file PB_SDK.H for details about the MSGAREA structure
  5630.          definition.
  5631.  
  5632.          Return value: -1 if not defined
  5633.                         0 if read ok
  5634.  
  5635.  
  5636.  
  5637.          ------------------------------------------------------------------
  5638.          int ReadMessage(MESSAGE *msg,int msgnum);
  5639.          ------------------------------------------------------------------
  5640.  
  5641.          Reads message number <msgnum> into the MESSAGE structure. To
  5642.          access the text of the message, use the function
  5643.          CreateMessageText().
  5644.          See the file PB_SDK.H for a description of the MESSAGE structure.
  5645.  
  5646.          Return value: -1 if the message does not exists
  5647.                         0 if the message is read ok
  5648.  
  5649.  
  5650.  
  5651.          ------------------------------------------------------------------
  5652.          void WriteMSGTMP(char *text);
  5653.          ------------------------------------------------------------------
  5654.  
  5655.          Writes the string <text> to the file MSGTMP. The file is always
  5656.          recreated when using this function. To append text to MSGTMP,
  5657.          use the function AppendMSGTMP(). You have to insert your own CR/LF
  5658.          pairs in the text if you want to force a newline.  Lines can be
  5659.          longer than 80 characters.  The message processing functions will
  5660.          do a word-wrap if necessary.  Do NOT insert a single CR or LF in
  5661.          the text. (\r or \n).
  5662.  
  5663.  
  5664.  
  5665.          ------------------------------------------------------------------
  5666.          void AppendMSGTMP(char *text);
  5667.          ------------------------------------------------------------------
  5668.  
  5669.          Same as WriteMSGTMP(), but adds text to an EXISTING file.
  5670.  
  5671.  
  5672.                                       - 100 -
  5673.  
  5674.  
  5675.  
  5676.          ------------------------------------------------------------------
  5677.          void ShowMessage(MESSAGE *msg);
  5678.          ------------------------------------------------------------------
  5679.  
  5680.          Shows the message <msg> to the user, including header and message
  5681.          text.
  5682.          See the file PB_SDK.H for an description of the MESSAGE structure.
  5683.  
  5684.  
  5685.  
  5686.          ------------------------------------------------------------------
  5687.          void CreateMessageText(MESSAGE *msg);
  5688.          ------------------------------------------------------------------
  5689.  
  5690.          Reads the text that belongs to message <msg>, and stores it in a
  5691.          file called MSGTMP in the current directory. This file can then be
  5692.          accessed as an ordinary textfile.
  5693.  
  5694.  
  5695.  
  5696.          ------------------------------------------------------------------
  5697.          int FirstMessage(MESSAGE *msg,int area,int order,int first);
  5698.          int MextMessage(MESSAGE *msg,int area,int order);
  5699.          ------------------------------------------------------------------
  5700.  
  5701.          These functions are used to read messages in forward or reverse
  5702.          order. To start scanning messages, you have to call the
  5703.          FirstMessage() function first, and the NextMessage() function to
  5704.          read more messages.
  5705.  
  5706.          msg   = MESSAGE structure where the message has to be stored.
  5707.          area  = area number to read messages in (0 = all areas)
  5708.          order = 1 for forward order, -1 for reverse order
  5709.          first = message to start reading from. This message does NOT
  5710.                  need to exist. The first non-deleted message following
  5711.                  this message will be read first.
  5712.  
  5713.          See the file PB_SDK.H for an description of the MESSAGE structure.
  5714.  
  5715.          Return value: -1  No more messages found.
  5716.                        >0  Message number of message found.
  5717.  
  5718.  
  5719.  
  5720.  
  5721.  
  5722.  
  5723.  
  5724.  
  5725.  
  5726.  
  5727.  
  5728.                                       - 101 -
  5729.  
  5730.  
  5731.  
  5732.          This is an example on how to use these functions:
  5733.  
  5734.          result = FirstMessage(msg,0,+1,1);
  5735.          while(result >= 0)
  5736.            {
  5737.             /* Do something with the message */
  5738.             result = NextMessage(msg,0,+1);
  5739.            }
  5740.  
  5741.  
  5742.  
  5743.          ------------------------------------------------------------------
  5744.          void DeleteMessage(MESSAGE *msg);
  5745.          ------------------------------------------------------------------
  5746.  
  5747.          Deletes message <msg>.
  5748.  
  5749.  
  5750.  
  5751.          ------------------------------------------------------------------
  5752.          void MarkMessage(int msgnum);
  5753.          ------------------------------------------------------------------
  5754.  
  5755.          Marks message number <msgnum> for later retrieval. Up to 200
  5756.          messages can be marked.
  5757.  
  5758.  
  5759.  
  5760.          ------------------------------------------------------------------
  5761.          void ReadMarkedMessages(void);
  5762.          ------------------------------------------------------------------
  5763.  
  5764.          Shows all marked messages to the user, with the option to wait
  5765.          after each message. If the user selected to wait after each
  5766.          message, the standard message options menu will be shown to the
  5767.          user. (Next,Prev,Stop,...).
  5768.          In fact, this function is identical to menu function "Read
  5769.          Messages", with the user selecting "Marked".
  5770.  
  5771.  
  5772.  
  5773.          ------------------------------------------------------------------
  5774.          void ListMarkedMessages(void);
  5775.          ------------------------------------------------------------------
  5776.  
  5777.          Is similar to ReadMarkedMessages(), but this function acts as a
  5778.          "QuickScan Messages" with the user selecting "Marked".
  5779.  
  5780.  
  5781.  
  5782.  
  5783.  
  5784.                                       - 102 -
  5785.  
  5786.  
  5787.  
  5788.          ------------------------------------------------------------------
  5789.          void UnMarkAllMessages(void);
  5790.          ------------------------------------------------------------------
  5791.  
  5792.          Unmarks all messages that were previously marked. You have to call
  5793.          this function before marking any messages, because the list of
  5794.          marked messages is remembered until a user logs off.
  5795.  
  5796.  
  5797.  
  5798.          ------------------------------------------------------------------
  5799.          IO_... functions
  5800.          ------------------------------------------------------------------
  5801.  
  5802.          All functions starting with IO_ are low-level functions to access
  5803.          the communication ports directly. Do NOT use these functions for
  5804.          ordinary I/O operations. They are intended for writing file
  5805.          transfer protocols. See the file PB_SDK.H for a description of
  5806.          these functions.
  5807.  
  5808.  
  5809.  
  5810.          ------------------------------------------------------------------
  5811.          char WaitKey(void);
  5812.          ------------------------------------------------------------------
  5813.  
  5814.          Waits for a character to be read from the modem or local keyboard.
  5815.  
  5816.          Return value: the character read.
  5817.  
  5818.  
  5819.  
  5820.          ------------------------------------------------------------------
  5821.          char WaitKeys(char *keylist);
  5822.          ------------------------------------------------------------------
  5823.  
  5824.          Waits for any character specified in <keylist>.
  5825.  
  5826.          Return value: the key from the list that was pressed (converted to
  5827.                        uppercase if the key is a letter).
  5828.  
  5829.          Example : c = WaitKeys("ABC\r\x1b");
  5830.                    /* Waits for A,B,C,<Enter> or <Esc> */
  5831.  
  5832.  
  5833.  
  5834.  
  5835.  
  5836.  
  5837.  
  5838.  
  5839.  
  5840.                                       - 103 -
  5841.  
  5842.  
  5843.  
  5844.          ------------------------------------------------------------------
  5845.          void Input(char *buf,int len,int readmode);
  5846.          ------------------------------------------------------------------
  5847.  
  5848.          Asks for a string from the user. The string is stored in <buf>,
  5849.          and the user will not be allowed to enter more than <len>
  5850.          characters.
  5851.  
  5852.          <readmode> :  INPUT_ALL      : All characters are allowed
  5853.                        INPUT_UPFIRST  : First character of each word is
  5854.                                         converted to uppercase.
  5855.                        INPUT_UPALL    : All characters are converted to
  5856.                                         uppercase.
  5857.                        INPUT_DIGITS   : Only digits are accepted.
  5858.  
  5859.                        INPUT_NOFIELD  : OR together with any of the
  5860.                                         previous modes if you don't want an
  5861.                                         input-field to be displayed.
  5862.  
  5863.  
  5864.  
  5865.          ------------------------------------------------------------------
  5866.          bool Ask(bool default);
  5867.          ------------------------------------------------------------------
  5868.  
  5869.          Asks for a Yes or No response from the user. Pressing 'Y' returns
  5870.          TRUE and outputs "Yes". Pressing 'N' returns FALSE and sends "No"
  5871.          to the user. Pressing <Enter> returns <default>, and sends "Yes"
  5872.          or "No", depending on <default>.
  5873.  
  5874.  
  5875.  
  5876.          ------------------------------------------------------------------
  5877.          char PeekChar(void);
  5878.          ------------------------------------------------------------------
  5879.  
  5880.          Checks if a character is available in the input buffer, and
  5881.          returns that character if there is.
  5882.  
  5883.          Return value:     0 if no character available
  5884.                         != 0 the character read (key pressed by user)
  5885.  
  5886.  
  5887.  
  5888.  
  5889.  
  5890.  
  5891.  
  5892.  
  5893.  
  5894.  
  5895.  
  5896.                                       - 104 -
  5897.  
  5898.  
  5899.  
  5900.          ------------------------------------------------------------------
  5901.          void SetColor(char color);
  5902.          ------------------------------------------------------------------
  5903.  
  5904.          Changes the current output color. All text that is output after
  5905.          this function is called will be displayed in the specified color.
  5906.  
  5907.          <color> can be one of the following:
  5908.  
  5909.             BLACK , RED , GREEN , YELLOW , MAGENTA , BLUE , CYAN , WHITE
  5910.  
  5911.  
  5912.  
  5913.          ------------------------------------------------------------------
  5914.          void EnableStop(void);
  5915.          void DisableStop(void);
  5916.          bool Stopped(void);
  5917.          ------------------------------------------------------------------
  5918.  
  5919.          Enables stopping of output by pressing 'S'. When enabled, a user
  5920.          can press 'S' to stop incoming text. When this happens, any
  5921.          string output function will immediately return to the caller, en
  5922.          the function Stopped() will return TRUE to indicate that the user
  5923.          requested to stop output.
  5924.  
  5925.          EnableStop()       Enables this feature and sets the "stopped"
  5926.                             status to FALSE .
  5927.          DisableStop()      Disables the stop feature.
  5928.          Stopped()          Returns the "stopped" flag (TRUE or FALSE).
  5929.  
  5930.  
  5931.          Example:
  5932.  
  5933.               EnableStop();
  5934.               for(i=0;i<100;i++)
  5935.                 {
  5936.                  printf("...something...");
  5937.                  if(Stopped()) break;
  5938.                 }
  5939.  
  5940.  
  5941.  
  5942.  
  5943.  
  5944.  
  5945.  
  5946.  
  5947.  
  5948.  
  5949.  
  5950.  
  5951.  
  5952.                                       - 105 -
  5953.  
  5954.  
  5955.  
  5956.          ------------------------------------------------------------------
  5957.          char ShowHotkeyFile(char *filename,char *hotkeys);
  5958.          ------------------------------------------------------------------
  5959.  
  5960.          Shows the file <filename> to the user, and watches for incoming
  5961.          keys that are specified in <hotkeys>. If one of these keys is
  5962.          detected, the function stops output, and returns the hotkey. The
  5963.          "stop" feature will be enabled when sending the file.
  5964.  
  5965.          Return value:    0 : File sent completely and no hotkeys pressed.
  5966.                           1 : 'S' pressed (output stopped)
  5967.                           2 : File not found
  5968.                         !=2 : Hotkey detected
  5969.  
  5970.  
  5971.  
  5972.          ------------------------------------------------------------------
  5973.          char ShowHotkeyANSIFile(char *filename,char *hotkeys);
  5974.          ------------------------------------------------------------------
  5975.  
  5976.          This function is identical to ShowKotkeyFile(), except for the
  5977.          fact that no extension and path can be specified. Depending on the
  5978.          setting of the user, <filename>.ANS/ASC in the textfiles
  5979.          directory will be sent. If no .ANS file is found, it will try to
  5980.          send the .ASC file. If that fails too, 2 will be returned.
  5981.  
  5982.          Return value:    0 : File sent completely and no hotkeys pressed.
  5983.                           1 : 'S' pressed (output stopped)
  5984.                           2 : File not found
  5985.                         !=2 : Hotkey detected
  5986.  
  5987.  
  5988.  
  5989.          ------------------------------------------------------------------
  5990.          void InitLineCounter();
  5991.          bool LineCounter();
  5992.          ------------------------------------------------------------------
  5993.  
  5994.          These functions are used to support page pausing ("More Y/N").
  5995.          Calling InitLineCounter() initializes the line counter to 0.
  5996.          Every time you call LineCounter(), the line counter is incremented
  5997.          by one. If the counter reaches the screen length, the user will be
  5998.          asked if he wants to continue reading. If he selects "No", the
  5999.          LineCounter() function will return FALSE.
  6000.  
  6001.  
  6002.  
  6003.  
  6004.  
  6005.  
  6006.  
  6007.  
  6008.                                       - 106 -
  6009.  
  6010.  
  6011.  
  6012.          Example:
  6013.  
  6014.              InitLineCounter();
  6015.              for(;;)
  6016.                {
  6017.                 printf("...something...\n");
  6018.                 if(!LineCounter()) break;
  6019.                }
  6020.  
  6021.  
  6022.  
  6023.          ------------------------------------------------------------------
  6024.          int ReadUser(USER_REC *rec,int recnr);
  6025.          ------------------------------------------------------------------
  6026.  
  6027.          Reads user record number <recnr> (0-...) from the user file and
  6028.          stores it in <rec>.
  6029.  
  6030.          Return value:  -1 if record does not exist.
  6031.                          0 if record is read ok.
  6032.  
  6033.  
  6034.  
  6035.          ------------------------------------------------------------------
  6036.          void WriteUser(USER_REC *rec,int recnr);
  6037.          ------------------------------------------------------------------
  6038.  
  6039.          Writes user record <rec> to record number <recnr> in the userfile.
  6040.  
  6041.  
  6042.  
  6043.          ------------------------------------------------------------------
  6044.          char PlayMusic(char *filename,char *hotkeys);
  6045.          ------------------------------------------------------------------
  6046.  
  6047.          Plays a .MUS file. The file has to be located in the ProBoard
  6048.          system directory. Do not include a path and extension in
  6049.          <filename>. The music can be stopped if the sysop presses one of
  6050.          the keys specified in <hotkeys>.            ^^^^^
  6051.  
  6052.          Return value:   0   Music file played till the end
  6053.                          1   Music file not found
  6054.                          >1  The hotkey pressed by the SYSOP
  6055.                                                        ^^^^^
  6056.  
  6057.  
  6058.  
  6059.  
  6060.  
  6061.  
  6062.  
  6063.  
  6064.                                       - 107 -
  6065.  
  6066.  
  6067.  
  6068.          ------------------------------------------------------------------
  6069.          void PostInfo(char *filename);
  6070.          ------------------------------------------------------------------
  6071.  
  6072.          Does exactly the same as the POSTINFO statement in a .Q-A file.
  6073.          No path and extension is allowed in <filename>. The file were the
  6074.          information will be written to will have the extension .ASW and
  6075.          will be placed in the ProBoard system directory.
  6076.  
  6077.  
  6078.  
  6079.          ------------------------------------------------------------------
  6080.          int ReadFileArea(int areanum,FILEAREA *fa);
  6081.          ------------------------------------------------------------------
  6082.  
  6083.          Reads information about file area number <areanum> in the <fa>
  6084.          structure.
  6085.          Check the file PB_SDK.H for details about the FILEAREA structure.
  6086.  
  6087.          Return value:   -1   File area does not exist
  6088.                           0   Ok
  6089.  
  6090.  
  6091.  
  6092.          ------------------------------------------------------------------
  6093.          void MenuFunction(int function,char *data);
  6094.          ------------------------------------------------------------------
  6095.  
  6096.          Executes menu function <function> with <data>. For details, see
  6097.          the menu functions description in this file.
  6098.          There are named constants declared for each function in the file
  6099.          PB_SDK.H. It is recommended that you use these constants instead
  6100.          of numbers.
  6101.  
  6102.  
  6103.  
  6104.          ------------------------------------------------------------------
  6105.          void Log(int loglevel,char *fmt,...);
  6106.          ------------------------------------------------------------------
  6107.  
  6108.          With this function you can write information to the ProBoard
  6109.          logfile. The log entry will be written if the user has a loglevel
  6110.          that is greater than <loglevel> .
  6111.  
  6112.          <loglevel> can be one of the following:
  6113.  
  6114.              LOG_FRIEND , LOG_NORMAL , LOG_SUSPICIOUS , LOG_DANGEROUS
  6115.  
  6116.          If you want a log entry to be written regardless of the user's
  6117.          loglevel, use LOG_FRIEND.
  6118.  
  6119.  
  6120.                                       - 108 -
  6121.  
  6122.  
  6123.  
  6124.          The Log() function works like the printf function: you can use
  6125.          format specifiers in the <fmt> string, and pass extra parameters.
  6126.  
  6127.          Example:   Log(LOG_NORMAL,"User's name = %s",CurUser->name);
  6128.  
  6129.  
  6130.  
  6131.          ------------------------------------------------------------------
  6132.          void HangUp();
  6133.          ------------------------------------------------------------------
  6134.  
  6135.          Hangs up the phone, logging off the user. It is exactly the same
  6136.          as pressing Alt-H.
  6137.  
  6138.  
  6139.  
  6140.          ------------------------------------------------------------------
  6141.          bool CheckAccess(int level,long flags);
  6142.          ------------------------------------------------------------------
  6143.  
  6144.          Checks if the current user can access something that requires
  6145.          <level> and <flags>. Returns TRUE if the user has access, FALSE if
  6146.          not.
  6147.  
  6148.  
  6149.  
  6150.          ------------------------------------------------------------------
  6151.          KEY ScanKey(void);
  6152.          ------------------------------------------------------------------
  6153.  
  6154.          Checks the LOCAL keyboard for a key, and returns the scan code for
  6155.          that key. If no key is available, 0 will be returned.
  6156.  
  6157.          For a list of defined values for scan codes, check the file
  6158.          PB_SDK.H.
  6159.  
  6160.  
  6161.  
  6162.  
  6163.  
  6164.  
  6165.  
  6166.  
  6167.  
  6168.  
  6169.  
  6170.  
  6171.  
  6172.  
  6173.  
  6174.  
  6175.  
  6176.                                       - 109 -
  6177.  
  6178.  
  6179.  
  6180.          ------------------------------------------------------------------
  6181.          bool GetFlag(long flags,char flagchar);
  6182.          void SetFlag(long flags,char flagchar);
  6183.          void ClearFlag(long flags,char flagchar);
  6184.          ------------------------------------------------------------------
  6185.  
  6186.          Access flags are stored in a long integer (32 bits). You have 3
  6187.          macros at your disposal to manipulate access flags:
  6188.  
  6189.             GetFlag   : Returns TRUE if flag <flagchar> is set
  6190.             SetFlag   : Turns flag <flagchar> on
  6191.             ClearFlag : Turns flag <flagchar> off
  6192.  
  6193.          <flagchar> must be a value from 'A' to 'Z' (upper or lower case).
  6194.  
  6195.  
  6196.  
  6197.          ------------------------------------------------------------------
  6198.          void exit(void);
  6199.          ------------------------------------------------------------------
  6200.  
  6201.          Exits the current pex-program, and unloads it from memory.
  6202.  
  6203.  
  6204.  
  6205.          ------------------------------------------------------------------
  6206.          void ExitTSR(void);
  6207.          ------------------------------------------------------------------
  6208.  
  6209.          Exits the current pex-program, and leaves it resident. This has
  6210.          some important implications:
  6211.  
  6212.           - All global and static variables keep their values for
  6213.             subsequent executions.
  6214.           - When the same pex-file is run again through menu function 60,
  6215.             the resident copy will be executed. This will result in faster
  6216.             loading.
  6217.  
  6218.          If you set up any handlers, you MUST use ExitTSR() to exit the
  6219.          program.
  6220.  
  6221.  
  6222.  
  6223.  
  6224.  
  6225.  
  6226.  
  6227.  
  6228.  
  6229.  
  6230.  
  6231.  
  6232.                                       - 110 -
  6233.  
  6234.  
  6235.  
  6236.          ------------------------------------------------------------------
  6237.          int InstallHandler(int handler,function);
  6238.          ------------------------------------------------------------------
  6239.  
  6240.          This is probably the most advanced and complicated function in the
  6241.          ProBoard SDK. With this function you can set up a "handler" for a
  6242.          specific action. Right now only one type of handler is supported:
  6243.          a replacement for the sysopkey-handler. This way you can create
  6244.          your own sysopkeys, or change the behaviour of existing sysopkeys.
  6245.          You could create a handler that intercepted the Alt-J key, and
  6246.          write your own version. In the next version you will be able to
  6247.          set up handlers for low-level I/O operations. So you could replace
  6248.          all I/O routines by your own functions. This way you can support
  6249.          your own exotic hardware or something like that. Anything goes!
  6250.  
  6251.             handler   : Handler type. For the moment, only HANDLER_SYSOPKEY
  6252.                         is supported.
  6253.             function  : A pointer to the handler function you created.
  6254.  
  6255.          Return value : -1 if illegal handler number is specified
  6256.                          0 if ok
  6257.  
  6258.  
  6259.          The handler function is a function that returns an integer. The
  6260.          parameters depend on the type of handler you are creating.
  6261.          For HANDLER_SYSOPKEY the handler function has to be declared like
  6262.          this:
  6263.  
  6264.          int sysopkeyhandler(KEY k)
  6265.          {
  6266.          ...
  6267.          }
  6268.  
  6269.  
  6270.  
  6271.  
  6272.  
  6273.  
  6274.  
  6275.  
  6276.  
  6277.  
  6278.  
  6279.  
  6280.  
  6281.  
  6282.  
  6283.  
  6284.  
  6285.  
  6286.  
  6287.  
  6288.                                       - 111 -
  6289.  
  6290.  
  6291.  
  6292.          If a handler function decides to do anything, it has to return
  6293.          HANDLED. If the handler wants to leave it up to ProBoard, it must
  6294.          return NOT_HANDLED.
  6295.  
  6296.          This asks for an example I suppose:
  6297.  
  6298.          int keyhandler(KEY k)
  6299.          {
  6300.           if(k == KEY_ALTJ)
  6301.             {
  6302.              printf("\7\rHang on %s! I'm shelling to DOS...",UserFirstName);
  6303.              MenuFunction(MENU_SHELL,"*N*Q*X*!");
  6304.              printf("I'm back!!\n");
  6305.  
  6306.              return HANDLED;
  6307.             }
  6308.            else return NOT_HANDLED;
  6309.          }
  6310.  
  6311.          main(int argc,char *argv[])
  6312.          {
  6313.           InstallHandler(HANDLER_SYSOPKEY,keyhandler);
  6314.  
  6315.           ExitTSR();    /* IMPORTANT */
  6316.          }
  6317.  
  6318.          So what does it do?  It intercepts the sysopkey-function, and
  6319.          checks if the key pressed is Alt-J. If it is, it shells to DOS
  6320.          with swapping ON, and it writes its own messages to the screen.
  6321.          When the sysop returns, the handler returns HANDLED to let
  6322.          ProBoard know that it does not have to process the key. You could
  6323.          use this example in an INIT.PEX file.
  6324.          Is this powerful or what?
  6325.  
  6326.  
  6327.  
  6328.  
  6329.  
  6330.  
  6331.  
  6332.  
  6333.  
  6334.  
  6335.  
  6336.  
  6337.  
  6338.  
  6339.  
  6340.  
  6341.  
  6342.  
  6343.  
  6344.                                       - 112 -
  6345.  
  6346.  
  6347.  
  6348.          Global ProBoard variables
  6349.          ──────────────────────────────────────────────────────────────────
  6350.  
  6351.          You have access to some important ProBoard system variables
  6352.          through global variables defined in PB_SDK.H.
  6353.  
  6354.  
  6355.          ------------------------------------------------------------------
  6356.          USER_REC * CurUser;
  6357.          ------------------------------------------------------------------
  6358.  
  6359.          Pointer to the current user record. You can change any of the
  6360.          field values in the record, but this will not result in any
  6361.          immediate action by ProBoard. For example, if you change the
  6362.          user's level, ProBoard will not know that you changed it, so you
  6363.          will have to tell it by calling AdjustTime();
  6364.  
  6365.          Check the file PB_SDK.H for a description of the USER_REC
  6366.          structure.
  6367.  
  6368.  
  6369.  
  6370.          ------------------------------------------------------------------
  6371.          int UserRecNr;
  6372.          ------------------------------------------------------------------
  6373.  
  6374.          The record number of the current user's record in the file
  6375.          USERS.PRO. This value cannot be changed.
  6376.  
  6377.  
  6378.  
  6379.          ------------------------------------------------------------------
  6380.          int NumLimits;
  6381.          ------------------------------------------------------------------
  6382.  
  6383.          The number of limits defined in ProCFG. You can access the
  6384.          limit-values through the global array 'Limits'.
  6385.          This value cannot be changed.
  6386.  
  6387.  
  6388.  
  6389.          ------------------------------------------------------------------
  6390.          LIMIT * Limits;
  6391.          ------------------------------------------------------------------
  6392.  
  6393.          Is an array of all user levels defined, with download and time
  6394.          limits. Check the file PB_SDK.H for information on the LIMIT
  6395.          structure.
  6396.          You are not allowed to change any values! (A good compiler should
  6397.          generate an error or warning if you try to do so)
  6398.  
  6399.  
  6400.                                       - 113 -
  6401.  
  6402.  
  6403.  
  6404.          ------------------------------------------------------------------
  6405.          char * LoginDate;
  6406.          char * LoginTime;
  6407.          ------------------------------------------------------------------
  6408.  
  6409.          This is the login date & time of the current user.
  6410.  
  6411.            LoginDate[0] : Day portion of login date
  6412.            LoginDate[1] : Month portion of login date
  6413.            LoginDate[2] : Year portion of login date (00-99)
  6414.            LoginTime[0] : Hour portion of login time
  6415.            LoginTime[1] : Minute portion of login time
  6416.            LoginTime[2] : Second portion of login time
  6417.  
  6418.  
  6419.  
  6420.          ------------------------------------------------------------------
  6421.          bool NetEntered;
  6422.          bool EchoEntered;
  6423.          ------------------------------------------------------------------
  6424.  
  6425.          These READ-ONLY variables tell you if netmail or echomail has been
  6426.          entered during this session.
  6427.  
  6428.  
  6429.  
  6430.          ------------------------------------------------------------------
  6431.          int NumUsers;
  6432.          ------------------------------------------------------------------
  6433.  
  6434.          This READ-ONLY variable is the number of users currently available
  6435.          in the file USERS.PRO.
  6436.  
  6437.  
  6438.  
  6439.          ------------------------------------------------------------------
  6440.          int NodeNumber;
  6441.          ------------------------------------------------------------------
  6442.  
  6443.          This READ-ONLY variable is the current node number.
  6444.  
  6445.  
  6446.  
  6447.          ------------------------------------------------------------------
  6448.          char * CurMenu;
  6449.          char * UserFirstname;
  6450.          char * PrevUser;
  6451.          char * StartupPath;
  6452.          char * SysPath;
  6453.          ------------------------------------------------------------------
  6454.  
  6455.  
  6456.                                       - 114 -
  6457.  
  6458.  
  6459.  
  6460.          CurMenu       : Current menu name
  6461.          UserFirstName : First name of current user
  6462.          PrevUser      : Name of previous user
  6463.          StartupPath   : Name of the directory where ProBoard was started
  6464.                          from (with trailing '\')
  6465.          SysPath       : Name of the ProBoard system directory (with
  6466.                          trailing '\')
  6467.  
  6468.          These are READ-ONLY strings!
  6469.  
  6470.  
  6471.  
  6472.          ------------------------------------------------------------------
  6473.          CONFIG * Config;
  6474.          ------------------------------------------------------------------
  6475.  
  6476.          A pointer to the current ProBoard configuration structure. See the
  6477.          file PB_SDK.H for a description of the CONFIG structure.
  6478.  
  6479.  
  6480.  
  6481.  
  6482.  
  6483.  
  6484.  
  6485.  
  6486.  
  6487.  
  6488.  
  6489.  
  6490.  
  6491.  
  6492.  
  6493.  
  6494.  
  6495.  
  6496.  
  6497.  
  6498.  
  6499.  
  6500.  
  6501.  
  6502.  
  6503.  
  6504.  
  6505.  
  6506.  
  6507.  
  6508.  
  6509.  
  6510.  
  6511.  
  6512.                                       - 115 -
  6513.  
  6514.  
  6515.  
  6516.          Special-purpose PEX-files
  6517.          ──────────────────────────────────────────────────────────────────
  6518.  
  6519.          Several pex-files will be loaded automatically (if present). They
  6520.          perform certain actions like edit a message, set up handlers, etc.
  6521.  
  6522.                INIT.PEX      : Will be loaded and executed before any I/O
  6523.                                has been done.  Use this to set up any
  6524.                                handlers (sysopkey handlers, ...)
  6525.  
  6526.                INIT_1.PEX -
  6527.                INIT_9.PEX    : Is the same as INIT.PEX, but will be loaded
  6528.                                in the order of the numbers. So you can have
  6529.                                up to 10 initialization pex-files.
  6530.  
  6531.                LOGIN.PEX     : Is run just before the user is asked for
  6532.                                his/her name.
  6533.  
  6534.                BIRTHDAY.PEX  : Is run after showing NEWS.ANS/ASC if today
  6535.                                is the user's birthday.
  6536.  
  6537.                NEWUSER1.PEX  : Is run before the file NEWUSER1.ANS/ASC is
  6538.                                shown.
  6539.  
  6540.                NEWUSER2.PEX  : Is run before the file NEWUSER2.ANS/ASC is
  6541.                                shown.
  6542.  
  6543.                WELCOME.PEX   : Is run before the file WELCOME.ANS/ASC is
  6544.                                shown
  6545.  
  6546.                WELCOMEx.PEX  : Is run before the file WELCOMEx.ANS/ASC is
  6547.                                shown (x = 1 to 9)
  6548.  
  6549.                SECxx.PEX     : Executed when a user with security level xx
  6550.                                logs in. Is run before SECxx.ANS/ASC is
  6551.                                shown.
  6552.  
  6553.                EXPIRED.PEX   : Is run before EXPIRED.ANS/ASC is shown, and
  6554.                                after a user's level is lowered because the
  6555.                                subscription date was reached.
  6556.  
  6557.                GOODBYE.PEX   : Is run before GOODBYE.ANS is displayed.
  6558.  
  6559.                GOODBYE2.PEX  : Is run after GOODBYE.ANS is displayed.
  6560.  
  6561.  
  6562.  
  6563.  
  6564.  
  6565.  
  6566.  
  6567.  
  6568.                                       - 116 -
  6569.  
  6570.  
  6571.  
  6572.                MSGED.PEX     : Is a replacement of the built-in message
  6573.                                editor. It will be executed with no
  6574.                                parameters. The message that you create has
  6575.                                to be written to a file called MSGTMP.
  6576.                                ProBoard will then read this file and create
  6577.                                a message from it. To let ProBoard know that
  6578.                                the user has aborted a message, delete
  6579.                                MSGTMP.
  6580.  
  6581.                FSED.PEX      : Is similar to MSGED.PEX, but will be
  6582.                                executed if the user has selected the
  6583.                                fullsrceen editor. It works the same way as
  6584.                                MSGED.PEX, but ProBoard will create a MSGTMP
  6585.                                file with the original message if a user is
  6586.                                replying to a message.
  6587.  
  6588.  
  6589.  
  6590.  
  6591.  
  6592.  
  6593.  
  6594.  
  6595.  
  6596.  
  6597.  
  6598.  
  6599.  
  6600.  
  6601.  
  6602.  
  6603.  
  6604.  
  6605.  
  6606.  
  6607.  
  6608.  
  6609.  
  6610.  
  6611.  
  6612.  
  6613.  
  6614.  
  6615.  
  6616.  
  6617.  
  6618.  
  6619.  
  6620.  
  6621.  
  6622.  
  6623.  
  6624.                                       - 117 -
  6625.  
  6626.  
  6627.  
  6628.                    ┌───────────────────────────────────────────┐
  6629.                    │ XII. REMOTE ACCESS TO PROBOARD CONVERSION │
  6630.                    └───────────────────────────────────────────┘
  6631.  
  6632.  
  6633.          If you are operating a Remote Access system, you can convert the
  6634.          userfile, message areas, file areas and all the menus to
  6635.          ProBoard. This is done by running CONVERT.EXE in the ProBoard
  6636.          system directory.
  6637.  
  6638.          Here's the procedure to use:
  6639.  
  6640.          - Install ProBoard as explained earlier.
  6641.          - Move to the ProBoard system directory (usually \PB)
  6642.          - Run CONVERT RA <ra-dir>
  6643.              eg. CONVERT RA C:\RA
  6644.          - When everything is converted, move all *.MNU files that are now
  6645.            in the ProBoard system directory to the ProBoard menu directory.
  6646.  
  6647.  
  6648.           Things you will have to do manually:
  6649.  
  6650.              - Enter all system parameters in ProCFG (like paths).
  6651.              - Enter the userlevels & downloadlimits in ProCFG
  6652.              - Check all file- and message-related functions for the
  6653.                correct data fields. ProBoard uses a different (more
  6654.                advanced) method for specifying areas.
  6655.              - Copy the messagebase files from the RA directory to the
  6656.                ProBoard messagebase directory. (No conversion necessary)
  6657.              - Enter the events in ProCFG.
  6658.              - Copy any .Q-A files to the ProBoard directory.
  6659.  
  6660.  
  6661.  
  6662.          LASTREAD.BBS conversion
  6663.          ──────────────────────────────────────────────────────────────────
  6664.  
  6665.          See PBUTIL LR.
  6666.  
  6667.  
  6668.  
  6669.          RA compatibility files
  6670.          ──────────────────────────────────────────────────────────────────
  6671.  
  6672.          ProBoard uses different files to keep the file areas and message
  6673.          areas in. Therefore it is not possible to run RA-utilities that
  6674.          use the files 'FILES.RA', 'MESSAGES.RA', 'TIMELOG.BBS' and
  6675.          'SYSINFO.BBS'.
  6676.  
  6677.  
  6678.  
  6679.  
  6680.                                       - 118 -
  6681.  
  6682.  
  6683.  
  6684.          To solve this problem, you can use the CONVERT utility to create
  6685.          these files from the ProBoard system files. You have to run
  6686.          'CONVERT SIMUL' in the ProBoard system directory. It will create
  6687.          the following files:
  6688.  
  6689.              CONFIG.RA
  6690.              FILES.RA
  6691.              MESSAGES.RA
  6692.              TIMELOG.BBS
  6693.              SYSINFO.BBS
  6694.  
  6695.          You should run this utility before you use your favorite
  6696.          RA-utility.
  6697.  
  6698.  
  6699.  
  6700.  
  6701.  
  6702.  
  6703.  
  6704.  
  6705.  
  6706.  
  6707.  
  6708.  
  6709.  
  6710.  
  6711.  
  6712.  
  6713.  
  6714.  
  6715.  
  6716.  
  6717.  
  6718.  
  6719.  
  6720.  
  6721.  
  6722.  
  6723.  
  6724.  
  6725.  
  6726.  
  6727.  
  6728.  
  6729.  
  6730.  
  6731.  
  6732.  
  6733.  
  6734.  
  6735.  
  6736.                                       - 119 -
  6737.  
  6738.  
  6739.  
  6740.  
  6741.  
  6742.  
  6743.  
  6744.  
  6745.  
  6746.  
  6747.  
  6748.  
  6749.  
  6750.  
  6751.  
  6752.  
  6753.  
  6754.  
  6755.  
  6756.  
  6757.  
  6758.  
  6759.  
  6760.  
  6761.  
  6762.  
  6763.  
  6764.  
  6765.  
  6766.  
  6767.  
  6768.  
  6769.  
  6770.  
  6771.  
  6772.  
  6773.  
  6774.  
  6775.  
  6776.  
  6777.  
  6778.  
  6779.  
  6780.  
  6781.  
  6782.  
  6783.  
  6784.  
  6785.  
  6786.  
  6787.  
  6788.  
  6789.  
  6790.  
  6791.  
  6792.  
  6793.                                       - 120 -
  6794.